X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/78f071b6cc53774bf78262b168b9b8f7711b1287..7c0ea335c7b1aa4ebd8b3a79dfb4be9fb20eefdb:/src/common/dbtable.cpp

diff --git a/src/common/dbtable.cpp b/src/common/dbtable.cpp
index ba8833b035..51ff59a1a2 100644
--- a/src/common/dbtable.cpp
+++ b/src/common/dbtable.cpp
@@ -40,17 +40,22 @@
 #endif
 
 #ifdef DBDEBUG_CONSOLE
-#	include <iostream.h>
+        #include <iostream.h>
 #endif
 
 #ifdef    __BORLANDC__
-  #pragma hdrstop
+        #pragma hdrstop
 #endif  //__BORLANDC__
 
 #if wxMAJOR_VERSION == 2
-#	ifndef WX_PRECOMP
-#		include  "wx/wx.h"
-#	endif //WX_PRECOMP
+        #ifndef WX_PRECOMP
+                #include "wx/string.h"
+                #include "wx/object.h"
+                #include "wx/list.h"
+                #include "wx/utils.h"
+                #include "wx/msgdlg.h"
+	#endif
+	#include "wx/filefn.h"
 #endif
 
 #if wxMAJOR_VERSION == 1
@@ -76,11 +81,6 @@
 	#include "wx/dbtable.h"
 #endif
 
-#ifdef __MWERKS__
-#define stricmp _stricmp
-#define strnicmp _strnicmp
-#endif
-
 #ifdef __UNIX__
 // The HPUX preprocessor lines below were commented out on 8/20/97
 // because macros.h currently redefines DEBUG and is unneeded.
@@ -95,7 +95,7 @@
 ULONG lastTableID = 0;
 
 
-#if __WXDEBUG__ > 0
+#ifdef __WXDEBUG__
 	wxList TablesInUse;
 #endif
 
@@ -144,7 +144,7 @@ wxTable::wxTable(wxDB *pwxDB, const char *tblName, const int nCols,
 	tableID = ++lastTableID;
 	sprintf(s, "wxTable constructor (%-20s) tableID:[%6lu] pDb:[%p]", tblName,tableID,pDb);
 
-#if __WXDEBUG__ > 0
+#ifdef __WXDEBUG__
 	CstructTablesInUse *tableInUse;
 	tableInUse = new CstructTablesInUse();
 	tableInUse->tableName = tblName;
@@ -186,7 +186,7 @@ wxTable::wxTable(wxDB *pwxDB, const char *tblName, const int nCols,
 	{
 		// Check to see if cursor type is supported
 		pDb->GetNextError(henv, hdbc, hstmtInternal);
-		if (! strcmp(pDb->sqlState, "01S02"))  // Option Value Changed
+		if (! wxStrcmp(pDb->sqlState, "01S02"))  // Option Value Changed
 		{
 			// Datasource does not support static cursors.  Driver
 			// will substitute a cursor type.  Call SQLGetStmtOption()
@@ -250,8 +250,7 @@ wxTable::~wxTable()
 		pDb->WriteSqlLog(s);
 	}
 
-#ifndef PROGRAM_FP4UPG
-#if __WXDEBUG__ > 0
+#ifdef __WXDEBUG__
 	if (tableID)
 	{
 		bool found = FALSE;
@@ -276,7 +275,7 @@ wxTable::~wxTable()
 		}
 	}
 #endif
-#endif
+
 	// Decrement the wxDB table count
 	if (pDb)
 		pDb->nTables--;
@@ -566,12 +565,15 @@ bool wxTable::getRec(UWORD fetchType)
 {
 	RETCODE retcode;
 
-#if wxODBC_FWD_ONLY_CURSORS
+#if !wxODBC_FWD_ONLY_CURSORS
 
 	// Fetch the NEXT, PREV, FIRST or LAST record, depending on fetchType
 	UDWORD  cRowsFetched;
 	UWORD   rowStatus;
-	if ((retcode = SQLExtendedFetch(hstmt, fetchType, 0, &cRowsFetched, &rowStatus)) != SQL_SUCCESS)
+
+//	if ((retcode = SQLExtendedFetch(hstmt, fetchType, 0, &cRowsFetched, &rowStatus)) != SQL_SUCCESS)
+   retcode = SQLExtendedFetch(hstmt, fetchType, 0, &cRowsFetched, &rowStatus);
+   if (retcode  != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
 		if (retcode == SQL_NO_DATA_FOUND)
 			return(FALSE);
 		else
@@ -943,12 +945,12 @@ bool wxTable::DropTable()
 	{
 		// Check for "Base table not found" error and ignore
 		pDb->GetNextError(henv, hdbc, hstmt);
-		if (strcmp(pDb->sqlState,"S0002"))  // "Base table not found"
+		if (wxStrcmp(pDb->sqlState,"S0002"))  // "Base table not found"
 		{
 			// Check for product specific error codes
-			if (!((pDb->Dbms() == dbmsSYBASE_ASA	&& !strcmp(pDb->sqlState,"42000"))	 ||  // 5.x (and lower?)
-				   (pDb->Dbms() == dbmsMY_SQL			&& !strcmp(pDb->sqlState,"S1000"))	 ||  // untested
-				   (pDb->Dbms() == dbmsPOSTGRES		&& !strcmp(pDb->sqlState,"08S01")))) 	  // untested
+			if (!((pDb->Dbms() == dbmsSYBASE_ASA	&& !wxStrcmp(pDb->sqlState,"42000"))	 ||  // 5.x (and lower?)
+				   (pDb->Dbms() == dbmsMY_SQL			&& !wxStrcmp(pDb->sqlState,"S1000"))	 ||  // untested
+				   (pDb->Dbms() == dbmsPOSTGRES		&& !wxStrcmp(pDb->sqlState,"08S01")))) 	  // untested
 			{
 				pDb->DispNextError();
 				pDb->DispAllErrors(henv, hdbc, hstmt);
@@ -1062,12 +1064,12 @@ bool wxTable::DropIndex(char * idxName)
 	{
 		// Check for "Index not found" error and ignore
 		pDb->GetNextError(henv, hdbc, hstmt);
-		if (strcmp(pDb->sqlState,"S0012"))  // "Index not found"
+		if (wxStrcmp(pDb->sqlState,"S0012"))  // "Index not found"
 		{
 			// Check for product specific error codes
-			if (!((pDb->Dbms() == dbmsSYBASE_ASA	&& !strcmp(pDb->sqlState,"42000"))   ||  // v5.x (and lower?)
-				   (pDb->Dbms() == dbmsSYBASE_ASE	&& !strcmp(pDb->sqlState,"S0002"))   ||  // Base table not found
-				   (pDb->Dbms() == dbmsMY_SQL			&& !strcmp(pDb->sqlState,"42S02"))       // untested
+			if (!((pDb->Dbms() == dbmsSYBASE_ASA	&& !wxStrcmp(pDb->sqlState,"42000"))   ||  // v5.x (and lower?)
+				   (pDb->Dbms() == dbmsSYBASE_ASE	&& !wxStrcmp(pDb->sqlState,"S0002"))   ||  // Base table not found
+				   (pDb->Dbms() == dbmsMY_SQL			&& !wxStrcmp(pDb->sqlState,"42S02"))       // untested
 					))
 			{
 				pDb->DispNextError();
@@ -1104,7 +1106,7 @@ int wxTable::Insert(void)
 	{
 		// Check to see if integrity constraint was violated
 		pDb->GetNextError(henv, hdbc, hstmtInsert);
-		if (! strcmp(pDb->sqlState, "23000"))  // Integrity constraint violated
+		if (! wxStrcmp(pDb->sqlState, "23000"))  // Integrity constraint violated
 			return(DB_ERR_INTEGRITY_CONSTRAINT_VIOL);
 		else
 		{
@@ -1770,7 +1772,7 @@ bool wxTable::SetNull(char *colName)
 	int i;
 	for (i = 0; i < noCols; i++)
 	{
-		if (!stricmp(colName, colDefs[i].ColName))
+		if (!wxStricmp(colName, colDefs[i].ColName))
 			break;
 	}