Changeset: 89396b04faf9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/89396b04faf9
Modified Files:
clients/odbc/driver/SQLDriverConnect.c
Branch: Aug2024
Log Message:
SQLDriverConnect: build connection string even with tryOnly
It's the only reason tryOnly exists!
diffs (56 lines):
diff --git a/clients/odbc/driver/SQLDriverConnect.c
b/clients/odbc/driver/SQLDriverConnect.c
--- a/clients/odbc/driver/SQLDriverConnect.c
+++ b/clients/odbc/driver/SQLDriverConnect.c
@@ -189,6 +189,18 @@ MNDBDriverConnect(ODBCDbc *dbc,
goto end;
}
+ // Build a connect string for the current connection and put it in the
out buffer.
+ scratch_alloc = buildConnectionString(dsn ? dsn : "DEFAULT", settings);
+ if (!scratch_alloc)
+ goto failure;
+ out_len = strcpy_len((char*)OutConnectionString, scratch_alloc,
BufferLength);
+ if (StringLength2Ptr)
+ *StringLength2Ptr = (SQLSMALLINT)out_len;
+ if (out_len + 1 > (size_t)BufferLength) {
+ addDbcError(dbc, "01004", NULL, 0);
+ rc = SQL_SUCCESS_WITH_INFO;
+ }
+
if (tryOnly) {
assert(sqlstate == NULL);
goto end;
@@ -200,23 +212,8 @@ MNDBDriverConnect(ODBCDbc *dbc,
rc = MNDBConnectSettings(dbc, dsn, settings);
settings = NULL; // do not free now
- if (!SQL_SUCCEEDED(rc))
- goto end; // not to 'failure', all errors have already been
logged
-
- // Build a connect string for the current connection
- // and put it in the buffer.
- scratch_alloc = buildConnectionString(dsn ? dsn : "DEFAULT",
dbc->settings);
- if (!scratch_alloc)
- goto failure;
- out_len = strcpy_len((char*)OutConnectionString, scratch_alloc,
BufferLength);
- if (StringLength2Ptr)
- *StringLength2Ptr = (SQLSMALLINT)out_len;
- if (out_len + 1 > (size_t)BufferLength) {
- addDbcError(dbc, "01004", NULL, 0);
- rc = SQL_SUCCESS_WITH_INFO;
- }
-
+ // always go to end, MNDBConnectSettings has already logged any failures
goto end;
failure:
@@ -313,7 +310,7 @@ SQLDriverConnectW(SQLHDBC ConnectionHand
addDbcError, dbc, return SQL_ERROR);
rc = MNDBDriverConnect(dbc, WindowHandle, in, SQL_NTS, NULL, 0, &n,
- DriverCompletion, 1); // Try Only
+ DriverCompletion, 1); // 1 = Try Only
if (!SQL_SUCCEEDED(rc))
return rc;
clearDbcErrors(dbc);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]