Experimental BLOB code added - set wxODBC_BLOB_EXPERIMENT to 1 in dbtest.h if you want to help work on this

Added some more test functions that have no GUI hook yet, but will be used in wxBase buidls eventually
Fixed handling of checks for TableExists() and TablePrivileges() to use the (HOPEFULLY) now working functions.
Better exception handling when the .CFG file does not exist
Better reporting of database errors shown by example


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
George Tasker
2001-04-11 14:20:56 +00:00
parent 02cf6fdd85
commit 3fe813a9ad
3 changed files with 297 additions and 50 deletions

View File

@@ -89,10 +89,10 @@ extern wxApp *DatabaseDemoApp;
* NOTE: The value returned by this function is for temporary use only and
* should be copied for long term use
*/
const wxChar *GetExtendedDBErrorMsg2(wxChar *ErrFile, int ErrLine)
const char *GetExtendedDBErrorMsg2(wxDb *pDb, char *ErrFile, int ErrLine)
{
static wxString msg;
msg.Empty();
msg = wxT("");
wxString tStr;
@@ -102,42 +102,33 @@ const wxChar *GetExtendedDBErrorMsg2(wxChar *ErrFile, int ErrLine)
msg += ErrFile;
msg += wxT(" Line: ");
tStr.Printf(wxT("%d"),ErrLine);
msg += tStr;
msg += tStr.c_str();
msg += wxT("\n");
}
msg.Append (wxT("\nODBC errors:\n"));
msg += wxT("\n");
/* Scan through each database connection displaying
* any ODBC errors that have occured. */
wxDbList *pDbList;
for (pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
// Display errors for this connection
int i;
for (i = 0; i < DB_MAX_ERROR_HISTORY; i++)
{
// Skip over any free connections
if (pDbList->Free)
continue;
// Display errors for this connection
for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
if (pDb->errorList[i])
{
if (pDbList->PtrDb->errorList[i])
{
msg.Append(pDbList->PtrDb->errorList[i]);
if (wxStrcmp(pDbList->PtrDb->errorList[i],wxT("")) != 0)
msg.Append(wxT("\n"));
// Clear the errmsg buffer so the next error will not
// end up showing the previous error that have occurred
wxStrcpy(pDbList->PtrDb->errorList[i],wxT(""));
}
msg.Append(pDb->errorList[i]);
if (wxStrcmp(pDb->errorList[i],wxT("")) != 0)
msg.Append(wxT("\n"));
// Clear the errmsg buffer so the next error will not
// end up showing the previous error that have occurred
wxStrcpy(pDb->errorList[i],wxT(""));
}
}
msg += wxT("\n");
return /*(wxChar*) (const wxChar*) msg*/msg.c_str();
return msg.c_str();
} // GetExtendedDBErrorMsg
// Clookup constructor
Clookup::Clookup(wxChar *tblName, wxChar *colName, wxDb *pDb, const wxString &defDir)
: wxDbTable(pDb, tblName, 1, wxT(""), !wxDB_QUERY_ONLY,
@@ -199,7 +190,8 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
widgetPtrsSet = TRUE;
// Query the lookup table and display the result set
if (!(lookup = new Clookup(tableName, colName, pDb, defDir)))
lookup = new Clookup(tableName, colName, pDb, defDir);
if (!lookup)
{
wxMessageBox(wxT("Error allocating memory for 'Clookup'object."),wxT("Error..."));
Close();
@@ -303,7 +295,8 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
widgetPtrsSet = TRUE;
// Query the lookup table and display the result set
if (!(lookup2 = new Clookup2(tableName, dispCol1, dispCol2, pDb, defDir)))
lookup2 = new Clookup2(tableName, dispCol1, dispCol2, pDb, defDir);
if (!lookup2)
{
wxMessageBox(wxT("Error allocating memory for 'Clookup2' object."),wxT("Error..."));
Close();
@@ -314,7 +307,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
{
wxString tStr;
tStr.Printf(wxT("Unable to open the table '%s'."),tableName);
tStr += GetExtendedDBErrorMsg2(__FILE__,__LINE__);
tStr += GetExtendedDBErrorMsg2(pDb,__FILE__,__LINE__);
wxMessageBox(tStr,wxT("ODBC Error..."));
Close();
return;