On Tue, 20 May 2003, Tim Woodall wrote:
> When doing an UPDATE or DELETE via ODBC, if no records are affected then
> SQLExecute should return SQL_NO_DATA_FOUND and not SQL_SUCCESS.
> I have included two patches below. The first is against RH7.2 latest update
> which is tested. The other is against the latest CVS source and isn't
The following patch to RH9 applies to the version in CVS (with an offset).
This patch has been tested on RH9.
[tim(at)twlinux psqlodbc]$ patch -p1 <psqlodbc-7.2.5-update.patch
patching file statement.c
Hunk #1 succeeded at 1022 (offset 60 lines).
Hunk #3 succeeded at 1258 (offset 65 lines).
[tim(at)twlinux psqlodbc]$ cat psqlodbc-7.2.5-update.patch
diff -ur psqlodbc-7.2.5.orig/statement.c psqlodbc-7.2.5/statement.c
--- psqlodbc-7.2.5.orig/statement.c 2002-11-29 15:43:50.000000000 +0000
+++ psqlodbc-7.2.5/statement.c 2003-06-16 11:50:32.000000000 +0100
@@ -962,7 +962,14 @@
static char *func = "SC_execute";
- char was_ok, was_nonfatal;
+ char was_ok, was_nonfatal, was_rows_affected = 1;
+ /* was_rows_affected is set to 0 iff an UPDATE or DELETE affects
+ * no rows. In this instance the driver should return
+ * SQL_NO_DATA_FOUND and not SQL_SUCCESS.
+ * I'm not sure about the use of char rather than int but this is
+ * consistent with the other was_* variables above.
QResultClass *res = NULL;
@@ -1082,6 +1089,13 @@
was_ok = QR_command_successful(res);
was_nonfatal = QR_command_nonfatal(res);
+ if(res->command &&
+ (strncmp(res->command, "UPDATE", 6) == 0 ||
+ strncmp(res->command, "DELETE", 6) == 0) &&
+ strtoul(res->command + 7, NULL, 0) == 0)
+ was_rows_affected = 0;
@@ -1179,7 +1193,10 @@
if (SC_get_errornumber(self) == STMT_OK)
- return SQL_SUCCESS;
+ return SQL_SUCCESS;
+ return SQL_NO_DATA_FOUND;
else if (SC_get_errornumber(self) == STMT_INFO_ONLY)
God said, "div D = rho, div B = 0, curl E = - @B/@t, curl H = J + @D/@t,"
and there was light.
In response to
pgsql-odbc by date
|Next:||From: Jeff Eckermann||Date: 2003-06-18 14:05:04|
|Subject: Re: Trouble Importing Data to Excel "unable to obtain a list of tables"|
|Previous:||From: Dave Page||Date: 2003-06-18 13:25:13|
|Subject: Re: Unicode/client_encoding/conversion problem|