From: <kr_...@us...> - 2004-11-04 12:50:40
|
Update of /cvsroot/htoolkit/HSQL/src/HSQL In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19504/src/HSQL Modified Files: HsODBC.h ODBC.hsc Log Message: Workaround for MSSQL driver Index: HsODBC.h =================================================================== RCS file: /cvsroot/htoolkit/HSQL/src/HSQL/HsODBC.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** HsODBC.h 26 Jan 2004 12:57:52 -0000 1.2 --- HsODBC.h 4 Nov 2004 12:50:29 -0000 1.3 *************** *** 27,29 **** --- 27,38 ---- #endif + #if defined(_WIN32_) + // By default the MSSQL driver doesn't allow to have multiple + // opened statements in the same time. There is a workaround + // for this but the consequence might be a litle bit slow-down. + // If you don't want to use MSSQL and the performance penalty + // is significant you can try to comment the following line. + #define MSSQL_ODBC + #endif + #endif Index: ODBC.hsc =================================================================== RCS file: /cvsroot/htoolkit/HSQL/src/HSQL/ODBC.hsc,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ODBC.hsc 1 Nov 2004 09:55:41 -0000 1.11 --- ODBC.hsc 4 Nov 2004 12:50:29 -0000 1.12 *************** *** 75,78 **** --- 75,81 ---- foreign import #{CALLCONV} "HsODBC.h SQLColumns" sqlColumns :: HSTMT -> CString -> SQLSMALLINT -> CString -> SQLSMALLINT -> CString -> SQLSMALLINT -> CString -> SQLSMALLINT -> IO SQLRETURN foreign import #{CALLCONV} "HsODBC.h SQLMoreResults" sqlMoreResults :: HSTMT -> IO SQLRETURN + #if defined(MSSQL_ODBC) + foreign import #{CALLCONV} "HsODBC.h SQLSetStmtAttr" sqlSetStmtAttr :: HSTMT -> SQLINTEGER -> SQLINTEGER -> SQLINTEGER -> IO SQLRETURN + #endif ----------------------------------------------------------------------------------------- *************** *** 193,196 **** --- 196,202 ---- hSTMT <- (#peek FIELD, hSTMT) pFIELD let handleResult res = handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res + #if defined(MSSQL_ODBC) + sqlSetStmtAttr hSTMT (#const SQL_ATTR_ROW_ARRAY_SIZE) 2 (#const SQL_IS_INTEGER) + #endif f hSTMT >>= handleResult fields <- moveToFirstResult hSTMT pFIELD |