Beginnings of BLOB support - Do not use BLOBs yet though, as they do not work, but these changes will not affect behavor of anything unless you try to create a BLOB column 0 which will fail right now.
Formatting of source code cleaned up. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -103,10 +103,19 @@ typedef unsigned int UINT;
|
|||||||
|
|
||||||
enum enumDummy {enumDum1};
|
enum enumDummy {enumDum1};
|
||||||
|
|
||||||
|
#ifndef SQL_C_BOOLEAN
|
||||||
#define SQL_C_BOOLEAN(datatype) (sizeof(datatype) == 1 ? SQL_C_UTINYINT : (sizeof(datatype) == 2 ? SQL_C_USHORT : SQL_C_ULONG))
|
#define SQL_C_BOOLEAN(datatype) (sizeof(datatype) == 1 ? SQL_C_UTINYINT : (sizeof(datatype) == 2 ? SQL_C_USHORT : SQL_C_ULONG))
|
||||||
// #define SQL_C_BOOLEAN (sizeof(Bool) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
#endif
|
||||||
|
#ifndef SQL_C_ENUM
|
||||||
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
||||||
|
#endif
|
||||||
|
#ifndef SQL_C_BLOB
|
||||||
|
#ifdef SQL_LONGVARBINARY
|
||||||
|
#define SQL_C_BLOB SQL_LONGVARBINARY
|
||||||
|
#elif SQL_VARBINARY
|
||||||
|
#define SQL_C_BLOB SQL_VARBINARY
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef TRUE
|
#ifndef TRUE
|
||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
@@ -135,6 +144,7 @@ const int DB_DATA_TYPE_VARCHAR = 1;
|
|||||||
const int DB_DATA_TYPE_INTEGER = 2;
|
const int DB_DATA_TYPE_INTEGER = 2;
|
||||||
const int DB_DATA_TYPE_FLOAT = 3;
|
const int DB_DATA_TYPE_FLOAT = 3;
|
||||||
const int DB_DATA_TYPE_DATE = 4;
|
const int DB_DATA_TYPE_DATE = 4;
|
||||||
|
const int DB_DATA_TYPE_BLOB = 5;
|
||||||
|
|
||||||
const int DB_SELECT_KEYFIELDS = 1;
|
const int DB_SELECT_KEYFIELDS = 1;
|
||||||
const int DB_SELECT_WHERE = 2;
|
const int DB_SELECT_WHERE = 2;
|
||||||
@@ -498,9 +508,14 @@ private:
|
|||||||
wxDbSqlTypeInfo typeInfInteger;
|
wxDbSqlTypeInfo typeInfInteger;
|
||||||
wxDbSqlTypeInfo typeInfFloat;
|
wxDbSqlTypeInfo typeInfFloat;
|
||||||
wxDbSqlTypeInfo typeInfDate;
|
wxDbSqlTypeInfo typeInfDate;
|
||||||
|
wxDbSqlTypeInfo typeInfBlob;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
bool GetDataTypeInfo(SWORD fSqlType, wxDbSqlTypeInfo &structSQLTypeInfo)
|
||||||
|
{ return getDataTypeInfo(fSqlType, structSQLTypeInfo); }
|
||||||
|
|
||||||
#if wxODBC_BACKWARD_COMPATABILITY
|
#if wxODBC_BACKWARD_COMPATABILITY
|
||||||
// ODBC handles
|
// ODBC handles
|
||||||
HENV henv; // ODBC Environment handle
|
HENV henv; // ODBC Environment handle
|
||||||
@@ -570,6 +585,7 @@ public:
|
|||||||
wxDbSqlTypeInfo typeInfInteger;
|
wxDbSqlTypeInfo typeInfInteger;
|
||||||
wxDbSqlTypeInfo typeInfFloat;
|
wxDbSqlTypeInfo typeInfFloat;
|
||||||
wxDbSqlTypeInfo typeInfDate;
|
wxDbSqlTypeInfo typeInfDate;
|
||||||
|
wxDbSqlTypeInfo typeInfBlob;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Public member functions
|
// Public member functions
|
||||||
@@ -598,28 +614,37 @@ public:
|
|||||||
wxDbColInf *GetColumns(wxChar *tableName[], const wxChar *userID=NULL);
|
wxDbColInf *GetColumns(wxChar *tableName[], const wxChar *userID=NULL);
|
||||||
wxDbColInf *GetColumns(const wxString &tableName, int *numCols, const wxChar *userID=NULL);
|
wxDbColInf *GetColumns(const wxString &tableName, int *numCols, const wxChar *userID=NULL);
|
||||||
|
|
||||||
int GetColumnCount(const wxString &tableName, const wxChar *userID=NULL);
|
int GetColumnCount(const wxString &tableName, const wxChar *userID=NULL);
|
||||||
const wxChar *GetDatabaseName(void) {return dbInf.dbmsName;}
|
const wxChar *GetDatabaseName(void) {return dbInf.dbmsName;}
|
||||||
const wxString &GetDataSource(void) {return dsn;}
|
const wxString &GetDataSource(void) {return dsn;}
|
||||||
const wxString &GetDatasourceName(void){return dsn;}
|
const wxString &GetDatasourceName(void){return dsn;}
|
||||||
const wxString &GetUsername(void) {return uid;}
|
const wxString &GetUsername(void) {return uid;}
|
||||||
const wxString &GetPassword(void) {return authStr;}
|
const wxString &GetPassword(void) {return authStr;}
|
||||||
bool IsOpen(void) {return dbIsOpen;}
|
bool IsOpen(void) {return dbIsOpen;}
|
||||||
HENV GetHENV(void) {return henv;}
|
HENV GetHENV(void) {return henv;}
|
||||||
HDBC GetHDBC(void) {return hdbc;}
|
HDBC GetHDBC(void) {return hdbc;}
|
||||||
HSTMT GetHSTMT(void) {return hstmt;}
|
HSTMT GetHSTMT(void) {return hstmt;}
|
||||||
int GetTableCount() {return nTables;}; // number of tables using this connection
|
int GetTableCount() {return nTables;} // number of tables using this connection
|
||||||
wxDbSqlTypeInfo GetTypeInfVarchar() {return typeInfVarchar;}
|
wxDbSqlTypeInfo GetTypeInfVarchar() {return typeInfVarchar;}
|
||||||
wxDbSqlTypeInfo GetTypeInfInteger() {return typeInfInteger;}
|
wxDbSqlTypeInfo GetTypeInfInteger() {return typeInfInteger;}
|
||||||
wxDbSqlTypeInfo GetTypeInfFloat() {return typeInfFloat;}
|
wxDbSqlTypeInfo GetTypeInfFloat() {return typeInfFloat;}
|
||||||
wxDbSqlTypeInfo GetTypeInfDate() {return typeInfDate;}
|
wxDbSqlTypeInfo GetTypeInfDate() {return typeInfDate;}
|
||||||
|
wxDbSqlTypeInfo GetTypeInfBlob() {return typeInfBlob;}
|
||||||
|
|
||||||
bool TableExists(const wxString &tableName, const wxChar *userID=NULL, const wxString &tablePath=wxEmptyString); // tableName can refer to a table, view, alias or synonym
|
// tableName can refer to a table, view, alias or synonym
|
||||||
bool TablePrivileges(const wxString &tableName, const wxString &priv, const wxChar *userID=NULL, const wxChar *schema=NULL, const wxString &path=wxEmptyString); // tableName can refer to a table, view, alias or synonym
|
bool TableExists(const wxString &tableName, const wxChar *userID=NULL,
|
||||||
void LogError(const wxString &errMsg, const wxString &SQLState = wxEmptyString) { logError(errMsg, SQLState); }
|
const wxString &tablePath=wxEmptyString);
|
||||||
|
bool TablePrivileges(const wxString &tableName, const wxString &priv,
|
||||||
|
const wxChar *userID=NULL, const wxChar *schema=NULL,
|
||||||
|
const wxString &path=wxEmptyString);
|
||||||
|
|
||||||
|
void LogError(const wxString &errMsg, const wxString &SQLState = wxEmptyString)
|
||||||
|
{ logError(errMsg, SQLState); }
|
||||||
void SetDebugErrorMessages(bool state) { silent = !state; }
|
void SetDebugErrorMessages(bool state) { silent = !state; }
|
||||||
bool SetSqlLogging(wxDbSqlLogState state, const wxString &filename = SQL_LOG_FILENAME, bool append = FALSE);
|
bool SetSqlLogging(wxDbSqlLogState state, const wxString &filename = SQL_LOG_FILENAME,
|
||||||
|
bool append = FALSE);
|
||||||
bool WriteSqlLog(const wxString &logMsg);
|
bool WriteSqlLog(const wxString &logMsg);
|
||||||
|
|
||||||
wxDBMS Dbms(void);
|
wxDBMS Dbms(void);
|
||||||
bool ModifyColumn(const wxString &tableName, const wxString &columnName,
|
bool ModifyColumn(const wxString &tableName, const wxString &columnName,
|
||||||
int dataType, ULONG columnLength=0,
|
int dataType, ULONG columnLength=0,
|
||||||
|
Reference in New Issue
Block a user