typedef double SDOUBLE;
typedef unsigned int UINT;
#define ULONG UDWORD
+#elif defined(__WXMAC__)
+ extern "C" {
+ #include "../../src/iodbc/isql.h"
+ #include "../../src/iodbc/isqlext.h"
+ }
+ typedef float SFLOAT;
+ typedef double SDOUBLE;
+ typedef unsigned int UINT;
+ #define ULONG UDWORD
#else // msw
#define ODBCVER 0x0250
#include <sql.h>
#include <sqlext.h>
#endif
-#ifdef __UNIX__
+#ifdef __UNIX__
+/*
# ifndef strnicmp
# define strnicmp strncasecmp
# endif
# ifndef stricmp
# define stricmp strcasecmp
# endif
+*/
+#elif defined(__WXMAC__)
#else
# include <io.h>
#endif
dbmsMY_SQL,
dbmsPOSTGRES,
dbmsACCESS,
- dbmsDBASE
+ dbmsDBASE,
+ dbmsINFORMIX
};
typedef enum dbms DBMS;
bool getDbInfo(void);
bool getDataTypeInfo(SWORD fSqlType, SqlTypeInfo &structSQLTypeInfo);
bool setConnectionOptions(void);
- void logError(char *errMsg, char *SQLState);
+ void logError(const char *errMsg, const char *SQLState);
+
+ bool fwdOnlyCursors;
public:
SqlTypeInfo typeInfVarchar, typeInfInteger, typeInfFloat, typeInfDate;
// Public member functions
- wxDB(HENV &aHenv);
+ wxDB(HENV &aHenv, bool FwdOnlyCursors=(bool)TRUE);
bool Open(char *Dsn, char *Uid, char *AuthStr); // Data Source Name, User ID, Password
void Close(void);
bool CommitTrans(void);
bool DispAllErrors(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
bool GetNextError(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
void DispNextError(void);
- bool CreateView(char *viewName, char *colList, char *pSqlStmt, bool attemptDrop=TRUE);
- bool DropView(char *viewName);
- bool ExecSql(char *pSqlStmt);
+ bool CreateView(const char *viewName, const char *colList, const char *pSqlStmt, bool attemptDrop=TRUE);
+ bool DropView(const char *viewName);
+ bool ExecSql(const char *pSqlStmt);
bool GetNext(void);
bool GetData(UWORD colNo, SWORD cType, PTR pData, SDWORD maxLen, SDWORD FAR *cbReturned);
- bool Grant(int privileges, char *tableName, char *userList = "PUBLIC");
- int TranslateSqlState(char *SQLState);
- bool Catalog(char *userID, char *fileName = "Catalog.txt");
- CcolInf *GetColumns(char *tableName[], char *userID=NULL);
+ bool Grant(int privileges, const char *tableName, const char *userList = "PUBLIC");
+ int TranslateSqlState(const char *SQLState);
+ bool Catalog(const char *userID, const char *fileName = "Catalog.txt");
+ CcolInf *GetColumns(char *tableName[], const char *userID=NULL);
char *GetDatabaseName(void) {return dbInf.dbmsName;}
char *GetDataSource(void) {return dsn;}
char *GetUsername(void) {return uid;}
HENV GetHENV(void) {return henv;}
HDBC GetHDBC(void) {return hdbc;}
HSTMT GetHSTMT(void) {return hstmt;}
- bool TableExists(char *tableName, char *userID=NULL, char *path=NULL); // Table name can refer to a table, view, alias or synonym
- void LogError(char *errMsg, char *SQLState = 0) {logError(errMsg, SQLState);}
- bool SqlLog(enum sqlLog state, char *filename = "sqllog.txt", bool append = FALSE);
- bool WriteSqlLog(char *logMsg);
+ bool TableExists(const char *tableName, const char *userID=NULL, const char *path=NULL); // Table name can refer to a table, view, alias or synonym
+ void LogError(const char *errMsg, const char *SQLState = 0) {logError(errMsg, SQLState);}
+ bool SqlLog(enum sqlLog state, const char *filename = "sqllog.txt", bool append = FALSE);
+ bool WriteSqlLog(const char *logMsg);
DBMS Dbms(void);
+ bool FwdOnlyCursors(void) {return fwdOnlyCursors;}
}; // wxDB
};
-#if __WXDEBUG__ > 0
+#ifdef __WXDEBUG__
#include "wx/object.h"
class CstructTablesInUse : public wxObject
{
// for other code segments to use, or close all of them when the application has
// completed.
-wxDB WXDLLEXPORT *GetDbConnection(DbStuff *pDbStuff);
+wxDB WXDLLEXPORT *GetDbConnection(DbStuff *pDbStuff, bool FwdOnlyCursors=(bool)TRUE);
bool WXDLLEXPORT FreeDbConnection(wxDB *pDb);
void WXDLLEXPORT CloseDbConnections(void);
int WXDLLEXPORT NumberDbConnectionsInUse(void);
// This function sets the sql log state for all open wxDB objects
-bool SqlLog(enum sqlLog state, char *filename = "sqllog.txt");
+bool SqlLog(enum sqlLog state, const char *filename = "sqllog.txt");
// This routine allows you to query a driver manager
// for a list of available datasources. Call this routine
// the first time using SQL_FETCH_FIRST. Continue to call it
// using SQL_FETCH_NEXT until you've exhausted the list.
-bool WXDLLEXPORT GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax,
+bool WXDLLEXPORT GetDataSource(HENV henv, const char *Dsn, SWORD DsnMax, const char *DsDesc, SWORD DsDescMax,
UWORD direction = SQL_FETCH_NEXT);
#endif