X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b941f2d3143c1205fc7c5b01bd254781db728b3..29c8694822a192934278ba0f98eaf437024c0278:/include/wx/db.h diff --git a/include/wx/db.h b/include/wx/db.h index ba591bd6b8..7fba228c9a 100644 --- a/include/wx/db.h +++ b/include/wx/db.h @@ -83,6 +83,11 @@ } #endif +#if wxUSE_UNICODE +#define SQL_C_WXCHAR SQL_C_WCHAR +#else +#define SQL_C_WXCHAR SQL_C_CHAR +#endif typedef float SFLOAT; typedef double SDOUBLE; @@ -365,7 +370,7 @@ public: ~wxDbColFor(){} void Initialize(); - int Format(int Nation, int dbDataType, SWORD sqlDataType, short columnSize, short decimalDigits); + int Format(int Nation, int dbDataType, SWORD sqlDataType, short columnLength, short decimalDigits); }; @@ -378,8 +383,8 @@ public: wxChar colName[DB_MAX_COLUMN_NAME_LEN+1]; SWORD sqlDataType; wxChar typeName[128+1]; - SWORD columnSize; - SWORD bufferLength; + SWORD columnLength; + SWORD bufferSize; short decimalDigits; short numPrecRadix; short nullable; @@ -455,7 +460,8 @@ enum wxDBMS dbmsDB2, dbmsINTERBASE, dbmsPERVASIVE_SQL, - dbmsXBASE_SEQUITER + dbmsXBASE_SEQUITER, + dbmsFIREBIRD }; @@ -493,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); @@ -582,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]; @@ -619,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")); @@ -750,8 +764,8 @@ int WXDLLEXPORT wxDbCreateDataSource(const wxString &driverName, const wxString // the first time using SQL_FETCH_FIRST. Continue to call it // using SQL_FETCH_NEXT until you've exhausted the list. bool WXDLLIMPEXP_ODBC -wxDbGetDataSource(HENV henv, wxChar *Dsn, SWORD DsnMax, wxChar *DsDesc, - SWORD DsDescMax, UWORD direction = SQL_FETCH_NEXT); +wxDbGetDataSource(HENV henv, wxChar *Dsn, SWORD DsnMaxLength, wxChar *DsDesc, + SWORD DsDescMaxLength, UWORD direction = SQL_FETCH_NEXT); // Change this to 0 to remove use of all deprecated functions @@ -791,7 +805,7 @@ int WXDLLIMPEXP_ODBC NumberDbConnectionsInUse(void); bool SqlLog(sqlLog state, const wxChar *filename = SQL_LOG_FILENAME); bool WXDLLIMPEXP_ODBC -GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax, +GetDataSource(HENV henv, char *Dsn, SWORD DsnMaxLength, char *DsDesc, SWORD DsDescMaxLength, UWORD direction = SQL_FETCH_NEXT); #endif // Deprecated structures/classes/functions