MS Access support fix

Standardized the parameter names for "colNo" in all places
A few more unicode adjustments (but Unicode is still not supported by these classes)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12610 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
George Tasker
2001-11-23 00:39:21 +00:00
parent f369dd4fdd
commit 1dee6b3992
2 changed files with 41 additions and 40 deletions

View File

@@ -329,8 +329,8 @@ public:
//TODO: Need to Document //TODO: Need to Document
typedef enum { WX_ROW_MODE_QUERY , WX_ROW_MODE_INDIVIDUAL } rowmode_t; typedef enum { WX_ROW_MODE_QUERY , WX_ROW_MODE_INDIVIDUAL } rowmode_t;
virtual void SetRowMode(const rowmode_t rowmode); virtual void SetRowMode(const rowmode_t rowmode);
virtual wxVariant GetCol(const int Colno) const ; virtual wxVariant GetCol(const int colNo) const ;
virtual void SetCol(const int ColNo, const wxVariant value); virtual void SetCol(const int colNo, const wxVariant value);
virtual GenericKey GetKey(void); virtual GenericKey GetKey(void);
virtual void SetKey(const GenericKey &key); virtual void SetKey(const GenericKey &key);

View File

@@ -1410,6 +1410,7 @@ bool wxDbTable::CreateTable(bool attemptDrop)
{ {
switch (pDb->Dbms()) switch (pDb->Dbms())
{ {
case dbmsACCESS:
case dbmsINFORMIX: case dbmsINFORMIX:
case dbmsSYBASE_ASA: case dbmsSYBASE_ASA:
case dbmsSYBASE_ASE: case dbmsSYBASE_ASE:
@@ -2502,48 +2503,48 @@ void wxDbTable::SetRowMode(const rowmode_t rowmode)
} // wxDbTable::SetRowMode() } // wxDbTable::SetRowMode()
wxVariant wxDbTable::GetCol(const int col) const wxVariant wxDbTable::GetCol(const int colNo) const
{ {
wxVariant val; wxVariant val;
if ((col < noCols) && (!IsColNull(col))) if ((colNo < noCols) && (!IsColNull(colNo)))
{ {
switch (colDefs[col].SqlCtype) switch (colDefs[colNo].SqlCtype)
{ {
case SQL_CHAR: case SQL_CHAR:
case SQL_VARCHAR: case SQL_VARCHAR:
val = (char *)(colDefs[col].PtrDataObj); val = (wxChar *)(colDefs[colNo].PtrDataObj);
break; break;
case SQL_C_LONG: case SQL_C_LONG:
case SQL_C_SLONG: case SQL_C_SLONG:
val = *(long *)(colDefs[col].PtrDataObj); val = *(long *)(colDefs[colNo].PtrDataObj);
break; break;
case SQL_C_SHORT: case SQL_C_SHORT:
case SQL_C_SSHORT: case SQL_C_SSHORT:
val = (long int )(*(short *)(colDefs[col].PtrDataObj)); val = (long int )(*(short *)(colDefs[colNo].PtrDataObj));
break; break;
case SQL_C_ULONG: case SQL_C_ULONG:
val = (long)(*(unsigned long *)(colDefs[col].PtrDataObj)); val = (long)(*(unsigned long *)(colDefs[colNo].PtrDataObj));
break; break;
case SQL_C_TINYINT: case SQL_C_TINYINT:
val = (long)(*(char *)(colDefs[col].PtrDataObj)); val = (long)(*(char *)(colDefs[colNo].PtrDataObj));
break; break;
case SQL_C_UTINYINT: case SQL_C_UTINYINT:
val = (long)(*(unsigned char *)(colDefs[col].PtrDataObj)); val = (long)(*(unsigned char *)(colDefs[colNo].PtrDataObj));
break; break;
case SQL_C_USHORT: case SQL_C_USHORT:
val = (long)(*(UWORD *)(colDefs[col].PtrDataObj)); val = (long)(*(UWORD *)(colDefs[colNo].PtrDataObj));
break; break;
case SQL_C_DATE: case SQL_C_DATE:
val = (DATE_STRUCT *)(colDefs[col].PtrDataObj); val = (DATE_STRUCT *)(colDefs[colNo].PtrDataObj);
break; break;
case SQL_C_TIME: case SQL_C_TIME:
val = (TIME_STRUCT *)(colDefs[col].PtrDataObj); val = (TIME_STRUCT *)(colDefs[colNo].PtrDataObj);
break; break;
case SQL_C_TIMESTAMP: case SQL_C_TIMESTAMP:
val = (TIMESTAMP_STRUCT *)(colDefs[col].PtrDataObj); val = (TIMESTAMP_STRUCT *)(colDefs[colNo].PtrDataObj);
break; break;
case SQL_C_DOUBLE: case SQL_C_DOUBLE:
val = *(double *)(colDefs[col].PtrDataObj); val = *(double *)(colDefs[colNo].PtrDataObj);
break; break;
default: default:
assert(0); assert(0);
@@ -2561,57 +2562,57 @@ void csstrncpyt(char *s, const char *t, int n)
*s = '\0'; *s = '\0';
} }
void wxDbTable::SetCol(const int col, const wxVariant val) void wxDbTable::SetCol(const int colNo, const wxVariant val)
{ {
//FIXME: Add proper wxDateTime support to wxVariant.. //FIXME: Add proper wxDateTime support to wxVariant..
wxDateTime dateval; wxDateTime dateval;
SetColNull(col, val.IsNull()); SetColNull(colNo, val.IsNull());
if (!val.IsNull()) if (!val.IsNull())
{ {
if ((colDefs[col].SqlCtype == SQL_C_DATE) if ((colDefs[colNo].SqlCtype == SQL_C_DATE)
|| (colDefs[col].SqlCtype == SQL_C_TIME) || (colDefs[colNo].SqlCtype == SQL_C_TIME)
|| (colDefs[col].SqlCtype == SQL_C_TIMESTAMP)) || (colDefs[colNo].SqlCtype == SQL_C_TIMESTAMP))
{ {
//Returns null if invalid! //Returns null if invalid!
if (!dateval.ParseDate(val.GetString())) if (!dateval.ParseDate(val.GetString()))
SetColNull(col,TRUE); SetColNull(colNo, TRUE);
} }
switch (colDefs[col].SqlCtype) switch (colDefs[colNo].SqlCtype)
{ {
case SQL_CHAR: case SQL_CHAR:
case SQL_VARCHAR: case SQL_VARCHAR:
csstrncpyt((char *)(colDefs[col].PtrDataObj), csstrncpyt((char *)(colDefs[colNo].PtrDataObj),
val.GetString().c_str(), val.GetString().c_str(),
colDefs[col].SzDataObj-1); colDefs[colNo].SzDataObj-1);
break; break;
case SQL_C_LONG: case SQL_C_LONG:
case SQL_C_SLONG: case SQL_C_SLONG:
*(long *)(colDefs[col].PtrDataObj) = val; *(long *)(colDefs[colNo].PtrDataObj) = val;
break; break;
case SQL_C_SHORT: case SQL_C_SHORT:
case SQL_C_SSHORT: case SQL_C_SSHORT:
*(short *)(colDefs[col].PtrDataObj) = val.GetLong(); *(short *)(colDefs[colNo].PtrDataObj) = val.GetLong();
break; break;
case SQL_C_ULONG: case SQL_C_ULONG:
*(unsigned long *)(colDefs[col].PtrDataObj) = val.GetLong(); *(unsigned long *)(colDefs[colNo].PtrDataObj) = val.GetLong();
break; break;
case SQL_C_TINYINT: case SQL_C_TINYINT:
*(char *)(colDefs[col].PtrDataObj) = val.GetChar(); *(char *)(colDefs[colNo].PtrDataObj) = val.GetChar();
break; break;
case SQL_C_UTINYINT: case SQL_C_UTINYINT:
*(unsigned char *)(colDefs[col].PtrDataObj) = val.GetChar(); *(unsigned char *)(colDefs[colNo].PtrDataObj) = val.GetChar();
break; break;
case SQL_C_USHORT: case SQL_C_USHORT:
*(unsigned short *)(colDefs[col].PtrDataObj) = val.GetLong(); *(unsigned short *)(colDefs[colNo].PtrDataObj) = val.GetLong();
break; break;
//FIXME: Add proper wxDateTime support to wxVariant.. //FIXME: Add proper wxDateTime support to wxVariant..
case SQL_C_DATE: case SQL_C_DATE:
{ {
DATE_STRUCT *dataptr = DATE_STRUCT *dataptr =
(DATE_STRUCT *)colDefs[col].PtrDataObj; (DATE_STRUCT *)colDefs[colNo].PtrDataObj;
dataptr->year = dateval.GetYear(); dataptr->year = dateval.GetYear();
dataptr->month = dateval.GetMonth()+1; dataptr->month = dateval.GetMonth()+1;
@@ -2621,7 +2622,7 @@ void wxDbTable::SetCol(const int col, const wxVariant val)
case SQL_C_TIME: case SQL_C_TIME:
{ {
TIME_STRUCT *dataptr = TIME_STRUCT *dataptr =
(TIME_STRUCT *)colDefs[col].PtrDataObj; (TIME_STRUCT *)colDefs[colNo].PtrDataObj;
dataptr->hour = dateval.GetHour(); dataptr->hour = dateval.GetHour();
dataptr->minute = dateval.GetMinute(); dataptr->minute = dateval.GetMinute();
@@ -2631,7 +2632,7 @@ void wxDbTable::SetCol(const int col, const wxVariant val)
case SQL_C_TIMESTAMP: case SQL_C_TIMESTAMP:
{ {
TIMESTAMP_STRUCT *dataptr = TIMESTAMP_STRUCT *dataptr =
(TIMESTAMP_STRUCT *)colDefs[col].PtrDataObj; (TIMESTAMP_STRUCT *)colDefs[colNo].PtrDataObj;
dataptr->year = dateval.GetYear(); dataptr->year = dateval.GetYear();
dataptr->month = dateval.GetMonth()+1; dataptr->month = dateval.GetMonth()+1;
dataptr->day = dateval.GetDay(); dataptr->day = dateval.GetDay();
@@ -2642,7 +2643,7 @@ void wxDbTable::SetCol(const int col, const wxVariant val)
} }
break; break;
case SQL_C_DOUBLE: case SQL_C_DOUBLE:
*(double *)(colDefs[col].PtrDataObj) = val; *(double *)(colDefs[colNo].PtrDataObj) = val;
break; break;
default: default:
assert(0); assert(0);
@@ -2654,10 +2655,10 @@ void wxDbTable::SetCol(const int col, const wxVariant val)
GenericKey wxDbTable::GetKey() GenericKey wxDbTable::GetKey()
{ {
void *blk; void *blk;
char *blkptr; wxChar *blkptr;
blk = malloc(m_keysize); blk = malloc(m_keysize);
blkptr = (char *) blk; blkptr = (wxChar *) blk;
int i; int i;
for (i=0; i < noCols; i++) for (i=0; i < noCols; i++)
@@ -2678,11 +2679,11 @@ GenericKey wxDbTable::GetKey()
void wxDbTable::SetKey(const GenericKey& k) void wxDbTable::SetKey(const GenericKey& k)
{ {
void *blk; void *blk;
char *blkptr; wxChar *blkptr;
blk = k.GetBlk(); blk = k.GetBlk();
blkptr = (char *)blk; blkptr = (wxChar *)blk;
int i; int i;
for (i=0; i < noCols; i++) for (i=0; i < noCols; i++)