Received: from cncware.whidbey.com (IDENT:root@cncware.whidbey.com [208.25.171.37]) by hub.org (8.9.3/8.9.3) with ESMTP id BAA78819 for ; Fri, 3 Sep 1999 01:18:45 -0400 (EDT) (envelope-from ken@ori-ind.com) Received: from ken (ken.cncware.com [192.168.61.201]) by cncware.whidbey.com (8.8.7/8.8.7) with SMTP id WAA01562; Thu, 2 Sep 1999 22:18:09 -0700 Message-Id: <3.0.32.19990902212445.008df1e0@ren.cncware.com> X-Sender: ken_ori@ren.cncware.com X-Mailer: Windows Eudora Pro Version 3.0 (32) Date: Thu, 02 Sep 1999 21:24:47 -0700 To: Byron Nikolaidis , pgsql-interfaces@hub.org From: "Ken J. Wright" Subject: Re: [INTERFACES] NEW ODBC DRIVER v06-40-0007 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" >BUG_FIXES: > >1. Fix all info functions to check whether the table is a view. > >2. Fix for Access 2000 (unconfirmed) > >3. Change most statement errors to General Error S1000 instead of 08S01 > (communication link failure). Byron, Number 3 is still causing trouble. from statement.h #define STMT_BAD_ERROR 27 from environ.c case STMT_BAD_ERROR: strcpy(szSqlState, "08S01"); // communication link failure This is the SQLSTATE the driver is returning when there is a failure from attempting to duplicate a unique index. It appears to be coming from SC_execute() in statement.c. The following code is executed if there is not a result set returned (like from a select). It looks like there needs to be more checking for other types of non-result set type failures. Create is the only action looked at here, otherwise it's lumped in with the comm link failures (STMT_BAD_ERROR). } else { /* Bad Error -- The error message will be in the Connection */ if (self->statement_type == STMT_TYPE_CREATE) { self->errornumber = STMT_CREATE_TABLE_ERROR; self->errormsg = "Error creating the table"; /* This would allow the table to already exists, thus appending rows to it. BUT, if the table didn't have the same attributes, it would fail. return SQL_SUCCESS_WITH_INFO; */ } else { self->errornumber = STMT_BAD_ERROR; self->errormsg = "Error while executing the query"; } Ken