X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4e45573151c64a0a9d423eca7b29879640b9d77..af79064d318dc0858af706d0d1b4569e24a612c4:/include/wx/db.h diff --git a/include/wx/db.h b/include/wx/db.h index 795b7912f5..fe4d25b045 100644 --- a/include/wx/db.h +++ b/include/wx/db.h @@ -123,8 +123,8 @@ enum enumDummy {enumDum1}; const int wxDB_PATH_MAX = 254; -WXDLLIMPEXP_DATA_ODBC(extern wxChar const *) SQL_LOG_FILENAME; -WXDLLIMPEXP_DATA_ODBC(extern wxChar const *) SQL_CATALOG_FILENAME; +extern WXDLLIMPEXP_DATA_ODBC(wxChar const *) SQL_LOG_FILENAME; +extern WXDLLIMPEXP_DATA_ODBC(wxChar const *) SQL_CATALOG_FILENAME; // Database Globals const int DB_TYPE_NAME_LEN = 40; @@ -460,7 +460,8 @@ enum wxDBMS dbmsDB2, dbmsINTERBASE, dbmsPERVASIVE_SQL, - dbmsXBASE_SEQUITER + dbmsXBASE_SEQUITER, + dbmsFIREBIRD }; @@ -472,8 +473,8 @@ enum wxDBMS // will overwrite the errors of the previously destroyed wxDb object in // this variable. -WXDLLIMPEXP_DATA_ODBC(extern wxChar) - DBerrorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN]; +extern WXDLLIMPEXP_DATA_ODBC(wxChar) + DBerrorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN+1]; class WXDLLIMPEXP_ODBC wxDb @@ -498,6 +499,7 @@ private: bool setConnectionOptions(void); void logError(const wxString &errMsg, const wxString &SQLState); const wxChar *convertUserID(const wxChar *userID, wxString &UserID); + bool determineDataTypes(bool failOnDataTypeUnsupported); void initialize(); bool open(bool failOnDataTypeUnsupported=true); @@ -587,7 +589,13 @@ public: // ODBC Error Inf. SWORD cbErrorMsg; int DB_STATUS; +#ifdef __VMS + // The DECC compiler chokes when in db.cpp the array is accessed outside + // its bounds. Maybe this change should also applied for other platforms. + wxChar errorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN+1]; +#else wxChar errorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN]; +#endif wxChar errorMsg[SQL_MAX_MESSAGE_LENGTH]; SDWORD nativeError; wxChar sqlState[20]; @@ -624,6 +632,7 @@ public: bool CreateView(const wxString &viewName, const wxString &colList, const wxString &pSqlStmt, bool attemptDrop=true); bool DropView(const wxString &viewName); bool ExecSql(const wxString &pSqlStmt); + bool ExecSql(const wxString &pSqlStmt, wxDbColInf** columns, short& numcols); bool GetNext(void); bool GetData(UWORD colNo, SWORD cType, PTR pData, SDWORD maxLen, SDWORD FAR *cbReturned); bool Grant(int privileges, const wxString &tableName, const wxString &userList = wxT("PUBLIC"));