Applied patch [ 1304191 ] support for MEMO fields

Francesco Montorsi


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-01-18 13:15:04 +00:00
parent 749da44287
commit 7eeba5114c
4 changed files with 64 additions and 0 deletions

View File

@@ -413,11 +413,13 @@ void wxDbTable::setCbValueForColumn(int columnIndex)
switch(colDefs[columnIndex].DbDataType)
{
case DB_DATA_TYPE_VARCHAR:
case DB_DATA_TYPE_MEMO:
if (colDefs[columnIndex].Null)
colDefs[columnIndex].CbValue = SQL_NULL_DATA;
else
colDefs[columnIndex].CbValue = SQL_NTS;
break;
break;
case DB_DATA_TYPE_INTEGER:
if (colDefs[columnIndex].Null)
colDefs[columnIndex].CbValue = SQL_NULL_DATA;
@@ -484,6 +486,11 @@ bool wxDbTable::bindParams(bool forUpdate)
precision = colDefs[i].SzDataObj;
scale = 0;
break;
case DB_DATA_TYPE_MEMO:
fSqlType = pDb->GetTypeInfMemo().FsqlType;
precision = colDefs[i].SzDataObj;
scale = 0;
break;
case DB_DATA_TYPE_INTEGER:
fSqlType = pDb->GetTypeInfInteger().FsqlType;
precision = pDb->GetTypeInfInteger().Precision;
@@ -1414,6 +1421,9 @@ bool wxDbTable::CreateTable(bool attemptDrop)
case DB_DATA_TYPE_VARCHAR:
cout << pDb->GetTypeInfVarchar().TypeName << wxT("(") << (int)(colDefs[i].SzDataObj / sizeof(wxChar)) << wxT(")");
break;
case DB_DATA_TYPE_MEMO:
cout << pDb->GetTypeInfMemo().TypeName;
break;
case DB_DATA_TYPE_INTEGER:
cout << pDb->GetTypeInfInteger().TypeName;
break;
@@ -1455,6 +1465,9 @@ bool wxDbTable::CreateTable(bool attemptDrop)
case DB_DATA_TYPE_VARCHAR:
sqlStmt += pDb->GetTypeInfVarchar().TypeName;
break;
case DB_DATA_TYPE_MEMO:
sqlStmt += pDb->GetTypeInfMemo().TypeName;
break;
case DB_DATA_TYPE_INTEGER:
sqlStmt += pDb->GetTypeInfInteger().TypeName;
break;
@@ -2349,6 +2362,11 @@ wxDbColDataPtr* wxDbTable::SetColDefs(wxDbColInf *pColInfs, UWORD numCols)
pColDataPtrs[index].SzDataObj = pColInfs[index].bufferSize+(1*sizeof(wxChar));
pColDataPtrs[index].SqlCtype = SQL_C_WXCHAR;
break;
case DB_DATA_TYPE_MEMO:
pColDataPtrs[index].PtrDataObj = new wxChar[pColInfs[index].bufferSize+(1*sizeof(wxChar))];
pColDataPtrs[index].SzDataObj = pColInfs[index].bufferSize+(1*sizeof(wxChar));
pColDataPtrs[index].SqlCtype = SQL_C_WXCHAR;
break;
case DB_DATA_TYPE_INTEGER:
// Can be long or short
if (pColInfs[index].bufferSize == sizeof(long))