//----------------------------------------------------------------------------------------
-// Name: BrowserDB.h,cpp
-// Purpose: a wxDB class
-// Author: Mark Johnson
+// Name: BrowserDB.h,cpp
+// Purpose: a wxDB class
+// Author: Mark Johnson
// Modified by:
-// Created: 19991127.mj10777
-// Copyright: (c) Mark Johnson
-// Licence: wxWindows license
-// RCS-ID: $Id$
+// Created: 19991127.mj10777
+// Copyright: (c) Mark Johnson
+// Licence: wxWindows license
+// RCS-ID: $Id$
//----------------------------------------------------------------------------------------
//-- 1)
//----------------------------------------------------------------------------------------
#endif
//----------------------------------------------------------------------------------------
-extern WXDLLEXPORT_DATA(wxDbList*) PtrBegDbList; /* from db.cpp, used in getting back error results from db connections */
+extern WXDLLEXPORT_DATA(wxDbList*) PtrBegDbList; /* from db.cpp, used in getting back error results from db connections */
//----------------------------------------------------------------------------------------
wxChar *GetExtendedDBErrorMsg(wxChar *ErrFile, int ErrLine)
msg.Append (_T("\nODBC errors:\n"));
// msg += _T("\n");
/* Scan through each database connection displaying
- * any ODBC errors that have occured. */
+ * any ODBC errors that have occurred. */
wxDbList *pDbList;
for (pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
{
if (pDbList->PtrDb->errorList[i])
{
msg.Append(pDbList->PtrDb->errorList[i]);
- if (wxStrcmp(pDbList->PtrDb->errorList[i],_T("")) != 0)
+ if (wxStrcmp(pDbList->PtrDb->errorList[i],wxEmptyString) != 0)
msg.Append(_T("\n"));
}
}
BrowserDB::BrowserDB()
{
PointerToNULL(0);
- ODBCSource = _T(""); // ODBC data source name (created with ODBC Administrator under Win95/NT)
- UserName = _T(""); // database username - must already exist in the data source
- Password = _T(""); // password database username
+ ODBCSource = wxEmptyString; // ODBC data source name (created with ODBC Administrator under Win95/NT)
+ UserName = wxEmptyString; // database username - must already exist in the data source
+ Password = wxEmptyString; // password database username
OnFillSqlTyp();
OnFilldbTyp();
} // BrowserDB Constructor
if (!OnStartDB(Quiet))
{
wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
} // BrowserDB:Initialize
//----------------------------------------------------------------------------------------
{
if (!Quiet)
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is already open."));
- return TRUE;
+ return true;
}
DbConnectInf.AllocHenv();
// Connect to datasource
//---------------------------------------------------------------------------------------
DlgUser *p_Dlg;
- p_Dlg = new DlgUser(pDoc->p_MainFrame,pDoc,_T(""));
- p_Dlg->s_DSN = ODBCSource;
- p_Dlg->s_User = UserName;
+ p_Dlg = new DlgUser(pDoc->p_MainFrame,pDoc,wxEmptyString);
+ p_Dlg->s_DSN = ODBCSource;
+ p_Dlg->s_User = UserName;
p_Dlg->s_Password = Password;
p_Dlg->OnInit();
p_Dlg->Fit();
-
- bool OK = FALSE;
+
+ bool OK = false;
if (p_Dlg->ShowModal() == wxID_OK)
{
(pDoc->p_DSN+i_Which)->Usr = p_Dlg->s_User;
(pDoc->p_DSN+i_Which)->Pas = p_Dlg->s_Password;
UserName = p_Dlg->s_User;
Password = p_Dlg->s_Password;
- OK = TRUE;
+ OK = true;
}
delete p_Dlg;
if (OK)
{
//--------------------------------------------------------------------------------------
- DbConnectInf.SetDsn(ODBCSource); // ODBC data source name (created with ODBC Administrator under Win95/NT)
- DbConnectInf.SetUserID(UserName); // database username - must already exist in the data source
- DbConnectInf.SetPassword(Password); // password database username
+ DbConnectInf.SetDsn(ODBCSource); // ODBC data source name (created with ODBC Administrator under Win95/NT)
+ DbConnectInf.SetUserID(UserName); // database username - must already exist in the data source
+ DbConnectInf.SetPassword(Password); // password database username
db_BrowserDB = wxDbGetConnection(&DbConnectInf);
// wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
if (db_BrowserDB == NULL)
{
- DbConnectInf.SetDsn(wxT(""));
- DbConnectInf.SetUserID(wxT(""));
- DbConnectInf.SetPassword(wxT(""));
+ DbConnectInf.SetDsn(wxEmptyString);
+ DbConnectInf.SetUserID(wxEmptyString);
+ DbConnectInf.SetPassword(wxEmptyString);
if (!Quiet)
{
wxLogMessage(_("\n-E-> BrowserDB::OnConnectDataSource() DB CONNECTION ERROR : Unable to connect to the data source.\n\nCheck the name of your data source to verify it has been correctly entered/spelled.\n\nWith some databases, the user name and password must\nbe created with full rights to the table prior to making a connection\n(using tools provided by the database manufacturer)"));
wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End - Time needed : %ld ms"),ODBCSource.c_str(),sw.Time());
}
DbConnectInf.FreeHenv();
- return FALSE;
+ return false;
}
//--------------------------------------------------------------------------------------
if (!Quiet)
wxLogMessage(_("-I-> BrowserDB::OnGetDataSourceODBC() - DatabaseName(%s) ; DataSource(%s)"),Temp1.c_str(),Temp2.c_str());
wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End - Time needed : %ld ms"),ODBCSource.c_str(),sw.Time());
}
- return TRUE;
+ return true;
}
else
{
DbConnectInf.FreeHenv();
- return FALSE;
+ return false;
}
}
}
if (!Quiet)
wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
- return TRUE;
+ return true;
}
//----------------------------------------------------------------------------------------
-bool BrowserDB::OnGetNext(int Cols,int Quiet)
+bool BrowserDB::OnGetNext(int Cols,int WXUNUSED(Quiet))
{
SDWORD cb;
- int i_dbDataType;
- int i=0;
+ int i_dbDataType;
wxChar s_temp[1024+1];
- long l_temp;
- double f_temp;
- int AnzError=0;
+ long l_temp;
+ double f_temp;
+ int AnzError=0;
TIMESTAMP_STRUCT t_temp;
wxString Temp0;
//-----------------------------
if (!db_BrowserDB->GetNext())
{
- return FALSE;
+#ifdef __WXDEBUG__
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
wxLogMessage(Temp0);
wxMessageBox(Temp0);
+#endif
+ return false;
}
else
{
+ int i;
for (i=0;i<Cols;i++)
{
wxStrcpy((cl_BrowserDB+i)->tableName,_T("-E->"));
i_dbDataType = (cl_BrowserDB+i)->pColFor->i_dbDataType;
- if (i_dbDataType == 0) // Filter unsupported dbDataTypes
+ if (i_dbDataType == 0) // Filter unsupported dbDataTypes
{
if (((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_VARCHAR) ||
- ((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_LONGVARCHAR))
+ ((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_LONGVARCHAR))
i_dbDataType = DB_DATA_TYPE_VARCHAR;
if ((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_C_DATE)
i_dbDataType = DB_DATA_TYPE_DATE;
i_dbDataType = DB_DATA_TYPE_FLOAT;
}
if ((i_dbDataType == DB_DATA_TYPE_INTEGER) &&
- ((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_C_DOUBLE))
- { // DBASE Numeric
+ ((cl_BrowserDB+i)->pColFor->i_sqlDataType == SQL_C_DOUBLE))
+ { // DBASE Numeric
i_dbDataType = DB_DATA_TYPE_FLOAT;
}
switch(i_dbDataType)
{
case DB_DATA_TYPE_VARCHAR:
- wxStrcpy(s_temp,_T(""));
- if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB+i)->pColFor->i_dbDataType,&s_temp,sizeof(s_temp), &cb))
+ wxStrcpy(s_temp,wxEmptyString);
+ if (!db_BrowserDB->GetData((UWORD)(i+1),(SWORD)((cl_BrowserDB+i)->pColFor->i_dbDataType),&s_temp[0],sizeof(s_temp), &cb))
{
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext of >%s<.\n-E-> "),(cl_BrowserDB+i)->tableName);
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
break;
case DB_DATA_TYPE_INTEGER:
l_temp = 0;
- if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB+i)->pColFor->i_sqlDataType,&l_temp,sizeof(l_temp), &cb))
+ if (!db_BrowserDB->GetData((UWORD)(i+1),(SWORD)((cl_BrowserDB+i)->pColFor->i_sqlDataType),&l_temp,sizeof(l_temp), &cb))
{
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
break;
case DB_DATA_TYPE_FLOAT:
f_temp = 0;
- if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB+i)->pColFor->i_sqlDataType,&f_temp,sizeof(f_temp), &cb))
+ if (!db_BrowserDB->GetData((UWORD)(i+1),(SWORD)((cl_BrowserDB+i)->pColFor->i_sqlDataType),&f_temp,sizeof(f_temp), &cb))
{
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
}
break;
case DB_DATA_TYPE_DATE:
- t_temp.day = t_temp.month = t_temp.year = t_temp.hour = t_temp.minute = t_temp.second = t_temp.fraction = 0;
- if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB+i)->pColFor->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
+ t_temp.day = 0;
+ t_temp.month = 0;
+ t_temp.year = 0;
+ t_temp.hour = 0;
+ t_temp.minute = 0;
+ t_temp.second = 0;
+ t_temp.fraction = 0;
+ if (!db_BrowserDB->GetData((UWORD)(i+1),(SWORD)((cl_BrowserDB+i)->pColFor->i_sqlDataType),&t_temp,sizeof(t_temp), &cb))
{
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
else
{
// i_Nation = 0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
- if (((cl_BrowserDB+i)->pColFor->i_Nation == 0) || // TS YYYY-MM-DD
- ((cl_BrowserDB+i)->pColFor->i_Nation == 3)) // IT YYYY-MM-DD
+ if (((cl_BrowserDB+i)->pColFor->i_Nation == 0) || // TS YYYY-MM-DD
+ ((cl_BrowserDB+i)->pColFor->i_Nation == 3)) // IT YYYY-MM-DD
{
Temp0.Printf((cl_BrowserDB+i)->pColFor->s_Field,t_temp.year,t_temp.month,t_temp.day,
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
wxStrcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
}
- if ((cl_BrowserDB+i)->pColFor->i_Nation == 3) // US MM/DD/YYYY
+ if ((cl_BrowserDB+i)->pColFor->i_Nation == 3) // US MM/DD/YYYY
{
Temp0.Printf((cl_BrowserDB+i)->pColFor->s_Field,t_temp.month,t_temp.day,t_temp.year,
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB+i)->pColFor->i_dbDataType,Temp0.c_str());
}
else
- return TRUE;
+ return true;
Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB+i)->pColFor->i_dbDataType,(cl_BrowserDB+i)->pColFor->i_sqlDataType);
wxStrcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
break;
} // for
} // else
- return TRUE;
+ return true;
}
//----------------------------------------------------------------------------------------
wxString SQLStmt;
i_Records = 0;
//---------------------------------------------------------------------------------------
- SQLStmt.sprintf(_T("SELECT * FROM %s"),db_BrowserDB->SQLTableName(tb_Name.c_str()));
+ wxString tablename = db_BrowserDB->SQLTableName(tb_Name.c_str());
+ SQLStmt.sprintf(_T("SELECT * FROM %s"),tablename.c_str());
if (!db_BrowserDB->ExecSql((wxChar *)(SQLStmt.GetData())))
{
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
wxLogMessage(Temp0);
wxMessageBox(_T("-E-> BrowserDB::OnSelect - GetData()"));
- return FALSE;
+ return false;
}
//---------------------------------------------------------------------------------------
while (db_BrowserDB->GetNext())
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
Temp0 += GetExtendedDBErrorMsg(__TFILE__,__LINE__);
wxLogMessage(Temp0);
- return FALSE;
+ return false;
}
//---------------------------------------------------------------------------------------
- // SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, sizeof(Name), TRUE, TRUE); // Primary index
+ // SetColDefs ( 0, "NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_WXCHAR, sizeof(Name), true, true); // Primary index
//---------------------------------------------------------------------------------------
if (!Quiet)
{
wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End - Time needed : %ld ms"),tb_Name.c_str(),i_Records,sw.Time());
}
- return TRUE;
+ return true;
}
//----------------------------------------------------------------------------------------
wxLogMessage(Temp0);
else
wxMessageBox(_T("-E-> BrowserDB::OnExecSql - ExecSql()"));
- return FALSE;
+ return false;
}
if (!Quiet)
{
// wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End - Time needed : %ld ms"),SQLStmt.c_str(),sw.Time());
}
- return TRUE;
+ return true;
}
//----------------------------------------------------------------------------------------
-wxDbInf* BrowserDB::OnGetCatalog(int Quiet)
+wxDbInf* BrowserDB::OnGetCatalog(int WXUNUSED(Quiet))
{
wxChar UName[255];
wxStrcpy(UName,UserName);
}
//----------------------------------------------------------------------------------------
-wxDbColInf* BrowserDB::OnGetColumns(wxChar *tableName, UWORD numCols, int Quiet)
+wxDbColInf* BrowserDB::OnGetColumns(wxChar *tableName, UWORD numCols, int WXUNUSED(Quiet))
{
wxChar UName[255];
int i;
(cl_BrowserDB+i)->pColFor->Format(1,
(cl_BrowserDB+i)->dbDataType,
(cl_BrowserDB+i)->sqlDataType,
- (cl_BrowserDB+i)->columnSize,
+ (cl_BrowserDB+i)->columnLength,
(cl_BrowserDB+i)->decimalDigits);
}
return cl_BrowserDB;
delete db_BrowserDB;
}
}
- cl_BrowserDB = NULL;
- ct_BrowserDB = NULL;
- db_BrowserDB = NULL;
- p_LogWindow = NULL;
+ cl_BrowserDB = NULL;
+ ct_BrowserDB = NULL;
+ db_BrowserDB = NULL;
+ p_LogWindow = NULL;
}
//----------------------------------------------------------------------------------------
i_SqlTyp[1] = SQL_C_BINARY; s_SqlTyp[1] = _T("SQL_C_BINARY");
i_SqlTyp[2] = SQL_C_BIT; s_SqlTyp[2] = _T("SQL_C_BIT");
i_SqlTyp[3] = SQL_C_BOOKMARK; s_SqlTyp[3] = _T("SQL_C_BOOKMARK");
- i_SqlTyp[4] = SQL_C_CHAR; s_SqlTyp[4] = _T("SQL_C_CHAR");
+ i_SqlTyp[4] = SQL_C_WXCHAR; s_SqlTyp[4] = _T("SQL_C_WXCHAR");
i_SqlTyp[5] = SQL_C_DATE; s_SqlTyp[5] = _T("SQL_C_DATE");
i_SqlTyp[6] = SQL_C_DEFAULT; s_SqlTyp[6] = _T("SQL_C_DEFAULT");
i_SqlTyp[7] = SQL_C_DOUBLE; s_SqlTyp[7] = _T("SQL_C_DOUBLE");
i_SqlTyp[21] = SQL_NUMERIC; s_SqlTyp[21] = _T("SQL_NUMERIC");
i_SqlTyp[22] = SQL_LONGVARCHAR; s_SqlTyp[22] = _T("SQL_LONGVARCHAR");
i_SqlTyp[23] = SQL_REAL; s_SqlTyp[23] = _T("SQL_REAL");
- i_SqlTyp[0] = 23; s_SqlTyp[0] = _T("");
+ i_SqlTyp[0] = 23; s_SqlTyp[0] = wxEmptyString;
}
//----------------------------------------------------------------------------------------
i_dbTyp[2] = DB_DATA_TYPE_INTEGER; s_dbTyp[2] = _T("DB_DATA_TYPE_INTEGER");
i_dbTyp[3] = DB_DATA_TYPE_FLOAT; s_dbTyp[3] = _T("DB_DATA_TYPE_FLOAT");
i_dbTyp[4] = DB_DATA_TYPE_DATE; s_dbTyp[4] = _T("DB_DATA_TYPE_DATE");
- i_dbTyp[0] = 4; s_dbTyp[0] = _T("");
+ i_dbTyp[0] = 4; s_dbTyp[0] = wxEmptyString;
}
//----------------------------------------------------------------------------------------