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);
 
 public:
 
        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);
 
 };  // wxDB
 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
 
        bool bindUpdateParams(void);
        bool bindCols(HSTMT cursor);
        bool getRec(UWORD fetchType);
-       bool execDelete(char *pSqlStmt);
-       bool execUpdate(char *pSqlStmt);
+       bool execDelete(const char *pSqlStmt);
+       bool execUpdate(const char *pSqlStmt);
        bool query(int queryType, bool forUpdate, bool distinct, char *pSqlStmt = 0);
 
 public:
 
        // Public member functions
        wxTable(wxDB *pwxDB, const char *tblName, const int nCols,
-               const char *qryTblName = 0, bool qryOnly = !QUERY_ONLY, char *tblPath=NULL);
+               const char *qryTblName = 0, bool qryOnly = !QUERY_ONLY, const char *tblPath=NULL);
        virtual ~wxTable();
        bool    Open(void);
        bool    CreateTable(bool attemptDrop=TRUE);
        bool    DropTable(void);
-       bool    CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs, bool attemptDrop=TRUE);
-       bool    DropIndex(char * idxName);
+       bool    CreateIndex(const char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs, bool attemptDrop=TRUE);
+       bool    DropIndex(const char * idxName);
        bool    CloseCursor(HSTMT cursor);
        int   Insert(void);
        bool    Update(void);
-       bool    Update(char *pSqlStmt);
-       bool    UpdateWhere(char *pWhereClause);
+       bool    Update(const char *pSqlStmt);
+       bool    UpdateWhere(const char *pWhereClause);
        bool    Delete(void);
-       bool    DeleteWhere(char *pWhereClause);
+       bool    DeleteWhere(const char *pWhereClause);
        bool    DeleteMatching(void);
        virtual bool Query(bool forUpdate = FALSE, bool distinct = FALSE);
        bool    QueryBySqlStmt(char *pSqlStmt);
        bool    IsColNull(int colNo);
        UWORD GetRowNum(void);
        void  GetSelectStmt(char *pSqlStmt, int typeOfSelect, bool distinct);
-       void  GetDeleteStmt(char *pSqlStmt, int typeOfDel, char *pWhereClause = 0);
-       void  GetUpdateStmt(char *pSqlStmt, int typeOfUpd, char *pWhereClause = 0);
-       void  GetWhereClause(char *pWhereClause, int typeOfWhere, char *qualTableName = 0);
+       void  GetDeleteStmt(char *pSqlStmt, int typeOfDel, const char *pWhereClause = 0);
+       void  GetUpdateStmt(char *pSqlStmt, int typeOfUpd, const char *pWhereClause = 0);
+       void  GetWhereClause(char *pWhereClause, int typeOfWhere, const char *qualTableName = 0);
        bool    CanSelectForUpdate(void);
        bool    CanUpdByROWID(void);
        void  ClearMemberVars(void);
        bool    SetQueryTimeout(UDWORD nSeconds);
-       void  SetColDefs (int index, char *fieldName, int dataType, void *pData, int cType,
+       void  SetColDefs (int index, const char *fieldName, int dataType, void *pData, int cType,
                                                        int size, bool keyField = FALSE, bool upd = TRUE,
                                                        bool insAllow = TRUE, bool derivedCol = FALSE);
        HSTMT *NewCursor(bool setCursor = FALSE, bool bindColumns = TRUE);
        int   DB_STATUS(void) { return(pDb->DB_STATUS); }
        bool    Refresh(void);
        bool    SetNull(int colNo);
-       bool    SetNull(char *colName);
+       bool    SetNull(const char *colName);
 
 #ifdef __WXDEBUG__
        ULONG   GetTableID() { return tableID; };