From: George Tasker Date: Fri, 25 Feb 2000 20:27:37 +0000 (+0000) Subject: Replaced reference with "wx/ioswrap.h" X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/52a17fe5345ba1cbfc0ae156a3dbafc3191a67f8 Replaced reference with "wx/ioswrap.h" Replaced wxMessageBox() with wxLogDebug() calls When calling GetColumns(), some drivers/datasources would not return a proper value for columnSize. If columnSize is less than 1, columnSize gets set to bufferLength git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/db.cpp b/src/common/db.cpp index 06dc95d96f..50de73347b 100644 --- a/src/common/db.cpp +++ b/src/common/db.cpp @@ -47,7 +47,7 @@ #endif #ifdef DBDEBUG_CONSOLE - #include + #include "wx/ioswrap.h" #endif #ifdef __BORLANDC__ @@ -897,7 +897,7 @@ void wxDB::Close(void) { s.sprintf("(%-20s) tableID:[%6lu] pDb:[%p]", tiu->tableName,tiu->tableID,tiu->pDb); s2.sprintf("Orphaned found using pDb:[%p]",this); - wxMessageBox (s,s2); + wxLogDebug (s,s2); } pNode = pNode->Next(); } @@ -961,7 +961,7 @@ bool wxDB::DispAllErrors(HENV aHenv, HDBC aHdbc, HSTMT aHstmt) } #ifdef __WXDEBUG__ - wxMessageBox(odbcErrMsg.GetData(),"DEBUG MESSAGE from DispAllErrors()"); + wxLogDebug(odbcErrMsg.GetData(),"DEBUG MESSAGE from DispAllErrors()"); #endif } @@ -1673,12 +1673,21 @@ wxColInf *wxDB::GetColumns(char *tableName[], const char *userID) GetData( 9, SQL_C_SSHORT, (UCHAR*) &colInf[colNo].decimalDigits,0, &cb); GetData(10, SQL_C_SSHORT, (UCHAR*) &colInf[colNo].numPrecRadix, 0, &cb); GetData(11, SQL_C_SSHORT, (UCHAR*) &colInf[colNo].nullable, 0, &cb); - GetData(12, SQL_C_CHAR, (UCHAR*) colInf[colNo].remarks, 254+1, &cb); + GetData(12, SQL_C_CHAR, (UCHAR*) colInf[colNo].remarks, 254+1, &cb); // Determine the wxDB data type that is used to represent the native data type of this data source colInf[colNo].dbDataType = 0; if (!wxStricmp(typeInfVarchar.TypeName,colInf[colNo].typeName)) + { + if (colInf[colNo].columnSize < 1) + { + // Apparently mySQL and Postgres (or their ODBC drivers) do not + // return a columnSize, so set columnSize = bufferLength + // if no column size was returned + colInf[colNo].columnSize = colInf[colNo].bufferLength; + } colInf[colNo].dbDataType = DB_DATA_TYPE_VARCHAR; + } else if (!wxStricmp(typeInfInteger.TypeName,colInf[colNo].typeName)) colInf[colNo].dbDataType = DB_DATA_TYPE_INTEGER; else if (!wxStricmp(typeInfFloat.TypeName,colInf[colNo].typeName)) @@ -1843,7 +1852,16 @@ wxColInf *wxDB::GetColumns(char *tableName, int *numCols, const char *userID) // Determine the wxDB data type that is used to represent the native data type of this data source colInf[colNo].dbDataType = 0; if (!wxStricmp(typeInfVarchar.TypeName,colInf[colNo].typeName)) + { + if (colInf[colNo].columnSize < 1) + { + // Apparently mySQL and Postgres (or their ODBC drivers) do not + // return a columnSize, so set columnSize = bufferLength + // if no column size was returned + colInf[colNo].columnSize = colInf[colNo].bufferLength; + } colInf[colNo].dbDataType = DB_DATA_TYPE_VARCHAR; + } else if (!wxStricmp(typeInfInteger.TypeName,colInf[colNo].typeName)) colInf[colNo].dbDataType = DB_DATA_TYPE_INTEGER; else if (!wxStricmp(typeInfFloat.TypeName,colInf[colNo].typeName))