Changeset: 91e3591f4c9c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=91e3591f4c9c
Modified Files:
        clients/ChangeLog.Jul2012
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/SQLNativeSql.c
Branch: Jul2012
Log Message:

ODBC: SQLNativeSql works on a connection handle, not statement handle.


diffs (164 lines):

diff --git a/clients/ChangeLog.Jul2012 b/clients/ChangeLog.Jul2012
--- a/clients/ChangeLog.Jul2012
+++ b/clients/ChangeLog.Jul2012
@@ -1,3 +1,7 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Fri Jun 29 2012 Sjoerd Mullender <sjo...@acm.org>
+- OSBC: Fixed a bug where SQLNativeSql expected a statment handle instead
+  of a connection handle.
+
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -281,7 +281,7 @@ ODBCTranslateSQL(const SQLCHAR *query, s
        char buf[512];
 
        nquery = dupODBCstring(query, length);
-       if (noscan)
+       if (noscan == SQL_NOSCAN_ON)
                return nquery;
        p = nquery;
        while ((p = strchr(p, '{')) != NULL) {
diff --git a/clients/odbc/driver/SQLNativeSql.c 
b/clients/odbc/driver/SQLNativeSql.c
--- a/clients/odbc/driver/SQLNativeSql.c
+++ b/clients/odbc/driver/SQLNativeSql.c
@@ -41,7 +41,7 @@
 #include "ODBCUtil.h"
 
 static SQLRETURN
-SQLNativeSql_(ODBCStmt *stmt,
+SQLNativeSql_(ODBCDbc *dbc,
              SQLCHAR *InStatementText,
              SQLINTEGER TextLength1,
              SQLCHAR *OutStatementText,
@@ -51,11 +51,11 @@ SQLNativeSql_(ODBCStmt *stmt,
        char *query;
 
        fixODBCstring(InStatementText, TextLength1, SQLINTEGER,
-                     addStmtError, stmt, return SQL_ERROR);
+                     addDbcError, dbc, return SQL_ERROR);
 
        if (InStatementText == NULL) {
                /* Invalid use of null pointer */
-               addStmtError(stmt, "HY009", NULL, 0);
+               addDbcError(dbc, "HY009", NULL, 0);
                return SQL_ERROR;
        }
 #ifdef ODBCDEBUG
@@ -63,35 +63,35 @@ SQLNativeSql_(ODBCStmt *stmt,
 #endif
 
        query = ODBCTranslateSQL(InStatementText, (size_t) TextLength1,
-                                stmt->noScan);
+                                SQL_NOSCAN_OFF);
        copyString(query, strlen(query), OutStatementText, BufferLength,
-                  TextLength2Ptr, SQLINTEGER, addStmtError, stmt,
+                  TextLength2Ptr, SQLINTEGER, addDbcError, dbc,
                   free(query); return SQL_ERROR);
        free(query);
 
-       return stmt->Error ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS;
+       return dbc->Error ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS;
 }
 
 SQLRETURN SQL_API
-SQLNativeSql(SQLHSTMT StatementHandle,
+SQLNativeSql(SQLHDBC ConnectionHandle,
             SQLCHAR *InStatementText,
             SQLINTEGER TextLength1,
             SQLCHAR *OutStatementText,
             SQLINTEGER BufferLength,
             SQLINTEGER *TextLength2Ptr)
 {
-       ODBCStmt *stmt = (ODBCStmt *) StatementHandle;
+       ODBCDbc *dbc = (ODBCDbc *) ConnectionHandle;
 
 #ifdef ODBCDEBUG
-       ODBCLOG("SQLNativeSql " PTRFMT " ", PTRFMTCAST StatementHandle);
+       ODBCLOG("SQLNativeSql " PTRFMT " ", PTRFMTCAST ConnectionHandle);
 #endif
 
-       if (!isValidStmt(stmt))
+       if (!isValidDbc(dbc))
                 return SQL_INVALID_HANDLE;
 
-       clearStmtErrors(stmt);
+       clearDbcErrors(dbc);
 
-       return SQLNativeSql_(stmt,
+       return SQLNativeSql_(dbc,
                             InStatementText,
                             TextLength1,
                             OutStatementText,
@@ -101,14 +101,14 @@ SQLNativeSql(SQLHSTMT StatementHandle,
 
 #ifdef WITH_WCHAR
 SQLRETURN SQL_API
-SQLNativeSqlA(SQLHSTMT StatementHandle,
+SQLNativeSqlA(SQLHDBC ConnectionHandle,
              SQLCHAR *InStatementText,
              SQLINTEGER TextLength1,
              SQLCHAR *OutStatementText,
              SQLINTEGER BufferLength,
              SQLINTEGER *TextLength2Ptr)
 {
-       return SQLNativeSql(StatementHandle,
+       return SQLNativeSql(ConnectionHandle,
                            InStatementText,
                            TextLength1,
                            OutStatementText,
@@ -117,42 +117,42 @@ SQLNativeSqlA(SQLHSTMT StatementHandle,
 }
 
 SQLRETURN SQL_API
-SQLNativeSqlW(SQLHSTMT StatementHandle,
+SQLNativeSqlW(SQLHDBC ConnectionHandle,
              SQLWCHAR *InStatementText,
              SQLINTEGER TextLength1,
              SQLWCHAR *OutStatementText,
              SQLINTEGER BufferLength,
              SQLINTEGER *TextLength2Ptr)
 {
-       ODBCStmt *stmt = (ODBCStmt *) StatementHandle;
+       ODBCDbc *dbc = (ODBCDbc *) ConnectionHandle;
        SQLRETURN rc;
        SQLINTEGER n;
        SQLSMALLINT nn;
        SQLCHAR *sqlin, *sqlout;
 
 #ifdef ODBCDEBUG
-       ODBCLOG("SQLNativeSqlW " PTRFMT " ", PTRFMTCAST StatementHandle);
+       ODBCLOG("SQLNativeSqlW " PTRFMT " ", PTRFMTCAST ConnectionHandle);
 #endif
 
-       if (!isValidStmt(stmt))
+       if (!isValidDbc(dbc))
                 return SQL_INVALID_HANDLE;
 
-       clearStmtErrors(stmt);
+       clearDbcErrors(dbc);
 
        fixWcharIn(InStatementText, TextLength1, SQLCHAR, sqlin,
-                  addStmtError, stmt, return SQL_ERROR);
+                  addDbcError, dbc, return SQL_ERROR);
 
-       rc = SQLNativeSql_(stmt, sqlin, SQL_NTS, NULL, 0, &n);
+       rc = SQLNativeSql_(dbc, sqlin, SQL_NTS, NULL, 0, &n);
        if (!SQL_SUCCEEDED(rc))
                return rc;
-       clearStmtErrors(stmt);
+       clearDbcErrors(dbc);
        n++;                    /* account for NUL byte */
        sqlout = malloc(n);
-       rc = SQLNativeSql_(stmt, sqlin, SQL_NTS, sqlout, n, &n);
+       rc = SQLNativeSql_(dbc, sqlin, SQL_NTS, sqlout, n, &n);
        nn = (SQLSMALLINT) n;
        if (SQL_SUCCEEDED(rc)) {
                fixWcharOut(rc, sqlout, nn, OutStatementText, BufferLength,
-                           TextLength2Ptr, 1, addStmtError, stmt);
+                           TextLength2Ptr, 1, addDbcError, dbc);
        }
        free(sqlout);
 
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to