Re: wrong values in ODBC parameters?
От | Bruce Momjian |
---|---|
Тема | Re: wrong values in ODBC parameters? |
Дата | |
Msg-id | 200101022208.RAA07120@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: wrong values in ODBC parameters? ("Johann Zuschlag" <zuschlag2@online.de>) |
Список | pgsql-interfaces |
No ideas, sorry. I don't know much about ODBC. Can you send a backtrace of the crash? Not sure how to do that from odbc though. [ Charset ISO-8859-1 unsupported, converting... ] > Hi Bruce, > > Thanks for your reply. > I tried to build psqlodbc.dll using 7.1 beta1. > Sorry, still the same exception. > > Do you have any other ideas, hints,etc.? > > Unfortunately I don't know enough about ODBC. > > regards > > Johann > > > On Tue, 2 Jan 2001 02:44:58 -0500 (EST), Bruce Momjian wrote: > > >Try 7.1 beta1 and see if the bug has been fixed already. > > > >> Hi, > >> > >> now my initial problem: > >> > >> I'm using a commercial application which is crashing while trying to > >> insert sets into tables (using psqlodbc.dll). > >> > >> I did some tracing: > >> > >> It crashes in module convert.c / copy_statement_with_parameters > >> in function: > >> > >> convert_special_chars(char *si, char *dst, int used) > >> > >> The access violation appears at: > >> > >> if (si[i] == '\r' && i+1 < strlen(si) && si[i+1] == '\n') > >> > >> si = 0x00000001 > >> used = -103 > >> > >> It seems that it runs into an access violation, since 'si' has > >> been assigned a wrong value. Also 'used = -103' doesn't > >> seem to be healthy value. 'dst' seems to be alright. > >> > >> convert_special_chars was called in > >> copy_statement_with_parameters: > >> > >> convert_special_chars(buf, &new_statement[npos], used); > >> > >> 'buf' seems to be the same like 'buffer': > >> > >> So 'used' and 'buffer' where assigned at (in copy_statement_with_parameters): > >> > >> /* Assign correct buffers based on data at exec param or not */ > >> if ( stmt->parameters[param_number].data_at_exec) { > >> used = stmt->parameters[param_number].EXEC_used ? *stmt->parameters[param_number].EXEC_used : SQL_NTS; > >> buffer = stmt->parameters[param_number].EXEC_buffer; > >> } > >> else { > >> used = stmt->parameters[param_number].used ? *stmt->parameters[param_number].used : SQL_NTS; > >> buffer = stmt->parameters[param_number].buffer; > >> } > >> > >> Well, here my knowledge ends. Something seems to be wrong with the ODBC parameters > >> supplied by my application, but: > >> > >> Same application works flawless with MS-SQL-ODBC and ORACLE-ODBC. > >> > >> So IMHO there must be a problem in psqlodbc.dll. Even though I admit that the buggy > >> call might be accepted in MS-ODBC due to another bug. :-) > >> > >> Could somebody point me in the correct direction? Any hints? Patches? > >> I really would like to use Postgres for my app. > >> > >> regards > >> > >> Johann > >> > > > >-- > > Bruce Momjian | http://candle.pha.pa.us > > pgman@candle.pha.pa.us | (610) 853-3000 > > + If your life is a hard drive, | 830 Blythe Avenue > > + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 > > > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
В списке pgsql-interfaces по дате отправления: