- if (!getDataTypeInfo(SQL_LONGVARBINARY, typeInfBlob))
- {
- if (!getDataTypeInfo(SQL_VARBINARY,typeInfBlob))
- {
- if (failOnDataTypeUnsupported)
- return false;
- }
- else
- typeInfBlob.FsqlType = SQL_VARBINARY;
- }
- else
- typeInfBlob.FsqlType = SQL_LONGVARBINARY;
+ // --------------- BLOB ---------------
+ for (iIndex = 0; iIndex < WXSIZEOF(PossibleSqlBlobTypes) &&
+ !getDataTypeInfo(PossibleSqlBlobTypes[iIndex], typeInfBlob); ++iIndex)
+ {}
+
+ if (iIndex < WXSIZEOF(PossibleSqlBlobTypes))
+ typeInfBlob.FsqlType = PossibleSqlBlobTypes[iIndex];
+ else if (failOnDataTypeUnsupported)
+ return false;
+
+ // --------------- MEMO ---------------
+ for (iIndex = 0; iIndex < WXSIZEOF(PossibleSqlMemoTypes) &&
+ !getDataTypeInfo(PossibleSqlMemoTypes[iIndex], typeInfMemo); ++iIndex)
+ {}
+
+ if (iIndex < WXSIZEOF(PossibleSqlMemoTypes))
+ typeInfMemo.FsqlType = PossibleSqlMemoTypes[iIndex];
+ else if (failOnDataTypeUnsupported)
+ return false;
+
+ return true;
+} // wxDb::determineDataTypes
+
+
+bool wxDb::open(bool failOnDataTypeUnsupported)
+{
+/*
+ If using Intersolv branded ODBC drivers, this is the place where you would substitute
+ your branded driver license information
+
+ SQLSetConnectOption(hdbc, 1041, (UDWORD) wxEmptyString);
+ SQLSetConnectOption(hdbc, 1042, (UDWORD) wxEmptyString);
+*/
+
+ // Mark database as open
+ dbIsOpen = true;
+
+ // Allocate a statement handle for the database connection
+ if (SQLAllocStmt(hdbc, &hstmt) != SQL_SUCCESS)
+ return(DispAllErrors(henv, hdbc));