Received: from mout03.kundenserver.de (mout03.kundenserver.de [195.20.224.218]) by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f02K9SO30647 for ; Tue, 2 Jan 2001 15:09:28 -0500 (EST) (envelope-from zuschlag2@online.de) Received: from [195.20.224.151] (helo=mrelay01.kundenserver.de) by mout03.kundenserver.de with esmtp (Exim 2.12 #2) id 14DXkn-00056f-00; Tue, 2 Jan 2001 21:09:53 +0100 Received: from p3e9c20ec.dip0.t-ipconnect.de ([62.156.32.236] helo=jozu) by mrelay01.kundenserver.de with smtp (Exim 2.12 #2) id 14DXki-0002RQ-00; Tue, 2 Jan 2001 21:09:49 +0100 From: "Johann Zuschlag" To: "Bruce Momjian" Cc: "Pgsql-interfaces@postgresql.org" Date: Tue, 02 Jan 2001 21:11:05 +0100 Reply-To: "Johann Zuschlag" X-Mailer: PMMail 2000 Professional (2.10.2010) For Windows 98 (4.10.2222) In-Reply-To: <200101020744.CAA15402@candle.pha.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Subject: Re: wrong values in ODBC parameters? Message-Id: X-Archive-Number: 200101/13 X-Sequence-Number: 620 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