Huge cleanup of the code. Reformatting, spelling fixes, standardizing on wxWindows conventions, etc.
Changed the couple lines of code required to work with checkins of the new ODBC classes that use wxStrings. Fixed a ton of memory leaks Demo still crashes on exit though - this problem has exited for nearly a year though. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Name: BrowserDB.h,cpp
|
||||
// Purpose: a wxDB class
|
||||
// Author: Mark Johnson, mj10777@gmx.net
|
||||
// Name: BrowserDB.h,cpp
|
||||
// Purpose: a wxDB class
|
||||
// Author: Mark Johnson, mj10777@gmx.net
|
||||
// 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)
|
||||
//----------------------------------------------------------------------------------------
|
||||
@@ -32,441 +32,458 @@
|
||||
//----------------------------------------------------------------------------------------
|
||||
// Global structure for holding ODBC connection information
|
||||
// - darf nur einmal im Projekte definiert werden ?? Extra Databasse Klasse ?
|
||||
wxDbConnectInf ConnectInf; // F<>r DBase
|
||||
wxDbConnectInf ConnectInf; // F<>r DBase
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
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 */
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
char *GetExtendedDBErrorMsg(char *ErrFile, int ErrLine)
|
||||
{
|
||||
static wxString msg;
|
||||
wxString tStr;
|
||||
if (ErrFile || ErrLine)
|
||||
{
|
||||
msg += "File: ";
|
||||
msg += ErrFile;
|
||||
msg += " Line: ";
|
||||
tStr.Printf("%d",ErrLine);
|
||||
msg += tStr.GetData();
|
||||
// msg += "\n";
|
||||
}
|
||||
msg.Append ("\nODBC errors:\n");
|
||||
// msg += "\n";
|
||||
/* Scan through each database connection displaying
|
||||
* any ODBC errors that have occured. */
|
||||
wxDbList *pDbList;
|
||||
for (pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
||||
{
|
||||
// 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 (pDbList->PtrDb->errorList[i])
|
||||
{
|
||||
msg.Append(pDbList->PtrDb->errorList[i]);
|
||||
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
||||
msg.Append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
msg += "\n";
|
||||
return (char*) (const char*) msg;
|
||||
static wxString msg;
|
||||
wxString tStr;
|
||||
if (ErrFile || ErrLine)
|
||||
{
|
||||
msg += "File: ";
|
||||
msg += ErrFile;
|
||||
msg += " Line: ";
|
||||
tStr.Printf("%d",ErrLine);
|
||||
msg += tStr.GetData();
|
||||
// msg += "\n";
|
||||
}
|
||||
msg.Append ("\nODBC errors:\n");
|
||||
// msg += "\n";
|
||||
/* Scan through each database connection displaying
|
||||
* any ODBC errors that have occured. */
|
||||
wxDbList *pDbList;
|
||||
for (pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
||||
{
|
||||
// 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 (pDbList->PtrDb->errorList[i])
|
||||
{
|
||||
msg.Append(pDbList->PtrDb->errorList[i]);
|
||||
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
||||
msg.Append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
msg += "\n";
|
||||
return (char*) (const char*) msg;
|
||||
} // GetExtendedDBErrorMsg
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
BrowserDB::BrowserDB()
|
||||
{
|
||||
Zeiger_auf_NULL(0);
|
||||
ODBCSource = ""; // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
||||
UserName = ""; // database username - must already exist in the data source
|
||||
Password = ""; // password database username
|
||||
OnFillSqlTyp();
|
||||
OnFilldbTyp();
|
||||
Zeiger_auf_NULL(0);
|
||||
ODBCSource = ""; // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
||||
UserName = ""; // database username - must already exist in the data source
|
||||
Password = ""; // password database username
|
||||
OnFillSqlTyp();
|
||||
OnFilldbTyp();
|
||||
} // BrowserDB Constructor
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
BrowserDB::~BrowserDB()
|
||||
{
|
||||
Zeiger_auf_NULL(1); // Clean up Tables and Databases (Commit, Close und delete)
|
||||
Zeiger_auf_NULL(1); // Clean up Tables and Databases (Commit, Close und delete)
|
||||
} // BrowserDB destructor
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::Initialize(int Quiet)
|
||||
{
|
||||
if (!OnStartDB(Quiet))
|
||||
{
|
||||
wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
if (!OnStartDB(Quiet))
|
||||
{
|
||||
wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
} // BrowserDB:Initialize
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::OnStartDB(int Quiet)
|
||||
{
|
||||
wxStopWatch sw;
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
|
||||
if (db_BrowserDB != NULL)
|
||||
{
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
|
||||
return TRUE;
|
||||
}
|
||||
// Initialize the ODBC Environment for Database Operations
|
||||
if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||
{
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Connect to datasource
|
||||
//---------------------------------------------------------------------------------------
|
||||
DlgUser *p_Dlg;
|
||||
p_Dlg = new DlgUser(pDoc->p_MainFrame,pDoc,"");
|
||||
p_Dlg->s_DSN = ODBCSource;
|
||||
p_Dlg->s_User = UserName;
|
||||
p_Dlg->s_Password = Password;
|
||||
p_Dlg->OnInit();
|
||||
p_Dlg->Fit();
|
||||
|
||||
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;
|
||||
}
|
||||
delete p_Dlg;
|
||||
if (OK)
|
||||
{
|
||||
//--------------------------------------------------------------------------------------
|
||||
strcpy(ConnectInf.Dsn, ODBCSource); // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
||||
strcpy(ConnectInf.Uid, UserName); // database username - must already exist in the data source
|
||||
strcpy(ConnectInf.AuthStr, Password); // password database username
|
||||
db_BrowserDB = wxDbGetConnection(&ConnectInf);
|
||||
// wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
|
||||
if (db_BrowserDB == NULL)
|
||||
{
|
||||
strcpy(ConnectInf.Dsn, "");
|
||||
strcpy(ConnectInf.Uid, "");
|
||||
strcpy(ConnectInf.AuthStr, "");
|
||||
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());
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
//--------------------------------------------------------------------------------------
|
||||
if (!Quiet)
|
||||
{
|
||||
Temp1 = db_BrowserDB->GetDatabaseName();
|
||||
Temp2 = db_BrowserDB->GetDataSource();
|
||||
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;
|
||||
} else return FALSE;
|
||||
wxStopWatch sw;
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
|
||||
if (db_BrowserDB != NULL)
|
||||
{
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
|
||||
return TRUE;
|
||||
}
|
||||
// Initialize the ODBC Environment for Database Operations
|
||||
if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||
{
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
// Connect to datasource
|
||||
//---------------------------------------------------------------------------------------
|
||||
DlgUser *p_Dlg;
|
||||
p_Dlg = new DlgUser(pDoc->p_MainFrame,pDoc,"");
|
||||
p_Dlg->s_DSN = ODBCSource;
|
||||
p_Dlg->s_User = UserName;
|
||||
p_Dlg->s_Password = Password;
|
||||
p_Dlg->OnInit();
|
||||
p_Dlg->Fit();
|
||||
|
||||
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;
|
||||
}
|
||||
delete p_Dlg;
|
||||
if (OK)
|
||||
{
|
||||
//--------------------------------------------------------------------------------------
|
||||
ConnectInf.Dsn = ODBCSource; // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
||||
ConnectInf.Uid = UserName; // database username - must already exist in the data source
|
||||
ConnectInf.AuthStr= Password; // password database username
|
||||
db_BrowserDB = wxDbGetConnection(&ConnectInf);
|
||||
// wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
|
||||
if (db_BrowserDB == NULL)
|
||||
{
|
||||
ConnectInf.Dsn = "";
|
||||
ConnectInf.Uid = "";
|
||||
ConnectInf.AuthStr = "";
|
||||
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());
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
//--------------------------------------------------------------------------------------
|
||||
if (!Quiet)
|
||||
{
|
||||
Temp1 = db_BrowserDB->GetDatabaseName();
|
||||
Temp2 = db_BrowserDB->GetDataSource();
|
||||
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;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::OnCloseDB(int Quiet)
|
||||
{
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
|
||||
if (db_BrowserDB)
|
||||
{
|
||||
db_BrowserDB->Close();
|
||||
wxDbFreeConnection(db_BrowserDB);
|
||||
|
||||
// Free Environment Handle that ODBC uses
|
||||
if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||
{
|
||||
// Error freeing environment handle
|
||||
}
|
||||
db_BrowserDB = NULL;
|
||||
}
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
|
||||
return TRUE;
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
|
||||
if (db_BrowserDB)
|
||||
{
|
||||
// db_BrowserDB->Close();
|
||||
wxDbFreeConnection(db_BrowserDB);
|
||||
/*
|
||||
// Free Environment Handle that ODBC uses
|
||||
if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||
{
|
||||
// Error freeing environment handle
|
||||
}
|
||||
*/
|
||||
db_BrowserDB = NULL;
|
||||
}
|
||||
if (!Quiet)
|
||||
wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::OnGetNext(int Cols,int Quiet)
|
||||
{
|
||||
SDWORD cb;
|
||||
int i_dbDataType;
|
||||
int i=0;
|
||||
char s_temp[1024+1];
|
||||
long l_temp;
|
||||
double f_temp;
|
||||
int AnzError=0;
|
||||
TIMESTAMP_STRUCT t_temp;
|
||||
wxString Temp0;
|
||||
//-----------------------------
|
||||
if (!db_BrowserDB->GetNext())
|
||||
{
|
||||
return FALSE;
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
wxMessageBox(Temp0);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0;i<Cols;i++)
|
||||
{
|
||||
strcpy((cl_BrowserDB+i)->tableName,"-E->");
|
||||
i_dbDataType = (cl_BrowserDB->pColFor+i)->i_dbDataType;
|
||||
if (i_dbDataType == 0) // Filter unsupported dbDataTypes
|
||||
{
|
||||
if (((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_VARCHAR) || ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_LONGVARCHAR))
|
||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DATE)
|
||||
i_dbDataType = DB_DATA_TYPE_DATE;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_BIT)
|
||||
i_dbDataType = DB_DATA_TYPE_INTEGER;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_NUMERIC)
|
||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_REAL)
|
||||
i_dbDataType = DB_DATA_TYPE_FLOAT;
|
||||
}
|
||||
if ((i_dbDataType == DB_DATA_TYPE_INTEGER) && ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DOUBLE))
|
||||
{ // DBASE Numeric
|
||||
i_dbDataType = DB_DATA_TYPE_FLOAT;
|
||||
}
|
||||
switch(i_dbDataType)
|
||||
{
|
||||
case DB_DATA_TYPE_VARCHAR:
|
||||
strcpy(s_temp,"");
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_dbDataType,&s_temp,sizeof(s_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext of >%s<.\n-E-> "),(cl_BrowserDB+i)->tableName);
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
}
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,s_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
break;
|
||||
case DB_DATA_TYPE_INTEGER:
|
||||
l_temp = 0;
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&l_temp,sizeof(l_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
}
|
||||
else
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,l_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
break;
|
||||
case DB_DATA_TYPE_FLOAT:
|
||||
f_temp = 0;
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&f_temp,sizeof(f_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxMessageBox(Temp0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,f_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
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->pColFor+i)->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
}
|
||||
else
|
||||
{
|
||||
// i_Nation = 0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
|
||||
if (((cl_BrowserDB->pColFor+i)->i_Nation == 0) || // TS YYYY-MM-DD
|
||||
((cl_BrowserDB->pColFor+i)->i_Nation == 3)) // IT YYYY-MM-DD
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.year,t_temp.month,t_temp.day,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
if (((cl_BrowserDB->pColFor+i)->i_Nation == 1) || // EU DD.MM.YYYY
|
||||
((cl_BrowserDB->pColFor+i)->i_Nation == 2)) // UK DD/MM/YYYY
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.day,t_temp.month,t_temp.year,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
if ((cl_BrowserDB->pColFor+i)->i_Nation == 3) // US MM/DD/YYYY
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.month,t_temp.day,t_temp.year,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
AnzError++;
|
||||
if (AnzError <= 100)
|
||||
{
|
||||
Temp0 = (cl_BrowserDB+i)->colName;
|
||||
wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,Temp0.c_str());
|
||||
}
|
||||
else
|
||||
return TRUE;
|
||||
Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,(cl_BrowserDB->pColFor+i)->i_sqlDataType);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
break;
|
||||
};
|
||||
}
|
||||
}
|
||||
// wxLogMessage("-E-> BrowserDB::OnGetNext - End");
|
||||
return TRUE;
|
||||
SDWORD cb;
|
||||
int i_dbDataType;
|
||||
int i=0;
|
||||
char s_temp[1024+1];
|
||||
long l_temp;
|
||||
double f_temp;
|
||||
int AnzError=0;
|
||||
TIMESTAMP_STRUCT t_temp;
|
||||
wxString Temp0;
|
||||
//-----------------------------
|
||||
if (!db_BrowserDB->GetNext())
|
||||
{
|
||||
return FALSE;
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
wxMessageBox(Temp0);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0;i<Cols;i++)
|
||||
{
|
||||
strcpy((cl_BrowserDB+i)->tableName,"-E->");
|
||||
i_dbDataType = (cl_BrowserDB->pColFor+i)->i_dbDataType;
|
||||
if (i_dbDataType == 0) // Filter unsupported dbDataTypes
|
||||
{
|
||||
if (((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_VARCHAR) || ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_LONGVARCHAR))
|
||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DATE)
|
||||
i_dbDataType = DB_DATA_TYPE_DATE;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_BIT)
|
||||
i_dbDataType = DB_DATA_TYPE_INTEGER;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_NUMERIC)
|
||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_REAL)
|
||||
i_dbDataType = DB_DATA_TYPE_FLOAT;
|
||||
}
|
||||
if ((i_dbDataType == DB_DATA_TYPE_INTEGER) && ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DOUBLE))
|
||||
{ // DBASE Numeric
|
||||
i_dbDataType = DB_DATA_TYPE_FLOAT;
|
||||
}
|
||||
switch(i_dbDataType)
|
||||
{
|
||||
case DB_DATA_TYPE_VARCHAR:
|
||||
strcpy(s_temp,"");
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_dbDataType,&s_temp,sizeof(s_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext of >%s<.\n-E-> "),(cl_BrowserDB+i)->tableName);
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
}
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,s_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
break;
|
||||
case DB_DATA_TYPE_INTEGER:
|
||||
l_temp = 0;
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&l_temp,sizeof(l_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
}
|
||||
else
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,l_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
break;
|
||||
case DB_DATA_TYPE_FLOAT:
|
||||
f_temp = 0;
|
||||
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&f_temp,sizeof(f_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxMessageBox(Temp0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,f_temp);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
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->pColFor+i)->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
}
|
||||
else
|
||||
{
|
||||
// i_Nation = 0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
|
||||
if (((cl_BrowserDB->pColFor+i)->i_Nation == 0) || // TS YYYY-MM-DD
|
||||
((cl_BrowserDB->pColFor+i)->i_Nation == 3)) // IT YYYY-MM-DD
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.year,t_temp.month,t_temp.day,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
if (((cl_BrowserDB->pColFor+i)->i_Nation == 1) || // EU DD.MM.YYYY
|
||||
((cl_BrowserDB->pColFor+i)->i_Nation == 2)) // UK DD/MM/YYYY
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.day,t_temp.month,t_temp.year,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
if ((cl_BrowserDB->pColFor+i)->i_Nation == 3) // US MM/DD/YYYY
|
||||
{
|
||||
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.month,t_temp.day,t_temp.year,
|
||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
AnzError++;
|
||||
if (AnzError <= 100)
|
||||
{
|
||||
Temp0 = (cl_BrowserDB+i)->colName;
|
||||
wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,Temp0.c_str());
|
||||
}
|
||||
else
|
||||
return TRUE;
|
||||
Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,(cl_BrowserDB->pColFor+i)->i_sqlDataType);
|
||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||
break;
|
||||
}; // switch
|
||||
} // for
|
||||
} // else
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::OnSelect(wxString tb_Name, int Quiet)
|
||||
{
|
||||
wxStopWatch sw;
|
||||
wxString SQLStmt;
|
||||
i_Records = 0;
|
||||
//---------------------------------------------------------------------------------------
|
||||
SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
while (db_BrowserDB->GetNext())
|
||||
{
|
||||
i_Records++;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
// SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, 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;
|
||||
wxStopWatch sw;
|
||||
wxString SQLStmt;
|
||||
i_Records = 0;
|
||||
//---------------------------------------------------------------------------------------
|
||||
SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
while (db_BrowserDB->GetNext())
|
||||
{
|
||||
i_Records++;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
wxLogMessage(Temp0);
|
||||
return FALSE;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------
|
||||
// SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, 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;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
bool BrowserDB::OnExecSql(wxString SQLStmt, int Quiet)
|
||||
{
|
||||
//---------------------------------------------------------------------------------------
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnExecSQL - ODBC-Error with ExecSql of >%s<.\n-E-> "),SQLStmt.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
if (!Quiet)
|
||||
wxLogMessage(Temp0);
|
||||
else
|
||||
wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
|
||||
return FALSE;
|
||||
}
|
||||
if (!Quiet)
|
||||
{
|
||||
// wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End - Time needed : %ld ms"),SQLStmt.c_str(),sw.Time());
|
||||
}
|
||||
return TRUE;
|
||||
//---------------------------------------------------------------------------------------
|
||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
||||
{
|
||||
Temp0.Printf(_("\n-E-> BrowserDB::OnExecSQL - ODBC-Error with ExecSql of >%s<.\n-E-> "),SQLStmt.c_str());
|
||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||
if (!Quiet)
|
||||
wxLogMessage(Temp0);
|
||||
else
|
||||
wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
|
||||
return FALSE;
|
||||
}
|
||||
if (!Quiet)
|
||||
{
|
||||
// wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End - Time needed : %ld ms"),SQLStmt.c_str(),sw.Time());
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
wxDbInf* BrowserDB::OnGetCatalog(int Quiet)
|
||||
{
|
||||
char UName[255];
|
||||
strcpy(UName,UserName);
|
||||
ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
|
||||
return ct_BrowserDB;
|
||||
char UName[255];
|
||||
strcpy(UName,UserName);
|
||||
ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
|
||||
return ct_BrowserDB;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
wxDbColInf* BrowserDB::OnGetColumns(char *tableName, int numCols, int Quiet)
|
||||
{
|
||||
char UName[255];
|
||||
int i;
|
||||
strcpy(UName,UserName);
|
||||
cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
|
||||
cl_BrowserDB->pColFor = new wxDbColFor[numCols];
|
||||
for (i=0;i<numCols;i++)
|
||||
{
|
||||
(cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
|
||||
(cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
|
||||
}
|
||||
return cl_BrowserDB;
|
||||
char UName[255];
|
||||
int i;
|
||||
strcpy(UName,UserName);
|
||||
cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
|
||||
cl_BrowserDB->pColFor = new wxDbColFor[numCols];
|
||||
for (i=0;i<numCols;i++)
|
||||
{
|
||||
(cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
|
||||
(cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
|
||||
}
|
||||
return cl_BrowserDB;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
void BrowserDB::Zeiger_auf_NULL(int Art)
|
||||
{
|
||||
if (Art == 1) // L<>schen
|
||||
{
|
||||
if (cl_BrowserDB != NULL)
|
||||
{ // Destroy the memory
|
||||
delete [] cl_BrowserDB;
|
||||
}
|
||||
if (ct_BrowserDB != NULL)
|
||||
{ // Destroy the memory
|
||||
delete [] ct_BrowserDB;
|
||||
}
|
||||
if (db_BrowserDB != NULL)
|
||||
{
|
||||
db_BrowserDB->CommitTrans();
|
||||
db_BrowserDB->Close();
|
||||
wxDbCloseConnections();
|
||||
delete db_BrowserDB;
|
||||
}
|
||||
}
|
||||
cl_BrowserDB = NULL;
|
||||
ct_BrowserDB = NULL;
|
||||
db_BrowserDB = NULL;
|
||||
p_LogWindow = NULL;
|
||||
if (Art == 1) // L<>schen
|
||||
{
|
||||
if (cl_BrowserDB != NULL)
|
||||
{ // Destroy the memory
|
||||
delete [] cl_BrowserDB;
|
||||
}
|
||||
if (ct_BrowserDB != NULL)
|
||||
{ // Destroy the memory
|
||||
delete [] ct_BrowserDB;
|
||||
}
|
||||
if (db_BrowserDB != NULL)
|
||||
{
|
||||
db_BrowserDB->CommitTrans();
|
||||
db_BrowserDB->Close();
|
||||
wxDbCloseConnections();
|
||||
delete db_BrowserDB;
|
||||
}
|
||||
}
|
||||
cl_BrowserDB = NULL;
|
||||
ct_BrowserDB = NULL;
|
||||
db_BrowserDB = NULL;
|
||||
p_LogWindow = NULL;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
void BrowserDB::OnFillSqlTyp()
|
||||
{
|
||||
i_SqlTyp[1] = SQL_C_BINARY; s_SqlTyp[1] = "SQL_C_BINARY";
|
||||
i_SqlTyp[2] = SQL_C_BIT; s_SqlTyp[2] = "SQL_C_BIT";
|
||||
i_SqlTyp[3] = SQL_C_BOOKMARK; s_SqlTyp[3] = "SQL_C_BOOKMARK";
|
||||
i_SqlTyp[4] = SQL_C_CHAR; s_SqlTyp[4] = "SQL_C_CHAR";
|
||||
i_SqlTyp[5] = SQL_C_DATE; s_SqlTyp[5] = "SQL_C_DATE";
|
||||
i_SqlTyp[6] = SQL_C_DEFAULT; s_SqlTyp[6] = "SQL_C_DEFAULT";
|
||||
i_SqlTyp[7] = SQL_C_DOUBLE; s_SqlTyp[7] = "SQL_C_DOUBLE";
|
||||
i_SqlTyp[8] = SQL_C_FLOAT; s_SqlTyp[8] = "SQL_C_FLOAT";
|
||||
i_SqlTyp[9] = SQL_C_LONG; s_SqlTyp[9] = "SQL_C_LONG";
|
||||
i_SqlTyp[10] = SQL_C_SHORT; s_SqlTyp[10] = "SQL_C_SHORT";
|
||||
i_SqlTyp[11] = SQL_C_SLONG; s_SqlTyp[11] = "SQL_C_SLONG";
|
||||
i_SqlTyp[12] = SQL_C_SSHORT; s_SqlTyp[12] = "SQL_C_SSHORT";
|
||||
i_SqlTyp[13] = SQL_C_STINYINT; s_SqlTyp[13] = "SQL_C_STINYINT";
|
||||
i_SqlTyp[14] = SQL_C_TIME; s_SqlTyp[14] = "SQL_C_TIME";
|
||||
i_SqlTyp[15] = SQL_C_TIMESTAMP; s_SqlTyp[15] = "SQL_C_TIMESTAMP";
|
||||
i_SqlTyp[16] = SQL_C_TINYINT; s_SqlTyp[16] = "SQL_C_TINYINT";
|
||||
i_SqlTyp[17] = SQL_C_ULONG; s_SqlTyp[17] = "SQL_C_ULONG";
|
||||
i_SqlTyp[18] = SQL_C_USHORT; s_SqlTyp[18] = "SQL_C_USHORT";
|
||||
i_SqlTyp[19] = SQL_C_UTINYINT; s_SqlTyp[19] = "SQL_C_UTINYINT";
|
||||
i_SqlTyp[20] = SQL_VARCHAR; s_SqlTyp[20] = "SQL_VARCHAR";
|
||||
i_SqlTyp[21] = SQL_NUMERIC; s_SqlTyp[21] = "SQL_NUMERIC";
|
||||
i_SqlTyp[22] = SQL_LONGVARCHAR; s_SqlTyp[22] = "SQL_LONGVARCHAR";
|
||||
i_SqlTyp[23] = SQL_REAL; s_SqlTyp[23] = "SQL_REAL";
|
||||
i_SqlTyp[0] = 23; s_SqlTyp[0] = "";
|
||||
i_SqlTyp[1] = SQL_C_BINARY; s_SqlTyp[1] = "SQL_C_BINARY";
|
||||
i_SqlTyp[2] = SQL_C_BIT; s_SqlTyp[2] = "SQL_C_BIT";
|
||||
i_SqlTyp[3] = SQL_C_BOOKMARK; s_SqlTyp[3] = "SQL_C_BOOKMARK";
|
||||
i_SqlTyp[4] = SQL_C_CHAR; s_SqlTyp[4] = "SQL_C_CHAR";
|
||||
i_SqlTyp[5] = SQL_C_DATE; s_SqlTyp[5] = "SQL_C_DATE";
|
||||
i_SqlTyp[6] = SQL_C_DEFAULT; s_SqlTyp[6] = "SQL_C_DEFAULT";
|
||||
i_SqlTyp[7] = SQL_C_DOUBLE; s_SqlTyp[7] = "SQL_C_DOUBLE";
|
||||
i_SqlTyp[8] = SQL_C_FLOAT; s_SqlTyp[8] = "SQL_C_FLOAT";
|
||||
i_SqlTyp[9] = SQL_C_LONG; s_SqlTyp[9] = "SQL_C_LONG";
|
||||
i_SqlTyp[10] = SQL_C_SHORT; s_SqlTyp[10] = "SQL_C_SHORT";
|
||||
i_SqlTyp[11] = SQL_C_SLONG; s_SqlTyp[11] = "SQL_C_SLONG";
|
||||
i_SqlTyp[12] = SQL_C_SSHORT; s_SqlTyp[12] = "SQL_C_SSHORT";
|
||||
i_SqlTyp[13] = SQL_C_STINYINT; s_SqlTyp[13] = "SQL_C_STINYINT";
|
||||
i_SqlTyp[14] = SQL_C_TIME; s_SqlTyp[14] = "SQL_C_TIME";
|
||||
i_SqlTyp[15] = SQL_C_TIMESTAMP; s_SqlTyp[15] = "SQL_C_TIMESTAMP";
|
||||
i_SqlTyp[16] = SQL_C_TINYINT; s_SqlTyp[16] = "SQL_C_TINYINT";
|
||||
i_SqlTyp[17] = SQL_C_ULONG; s_SqlTyp[17] = "SQL_C_ULONG";
|
||||
i_SqlTyp[18] = SQL_C_USHORT; s_SqlTyp[18] = "SQL_C_USHORT";
|
||||
i_SqlTyp[19] = SQL_C_UTINYINT; s_SqlTyp[19] = "SQL_C_UTINYINT";
|
||||
i_SqlTyp[20] = SQL_VARCHAR; s_SqlTyp[20] = "SQL_VARCHAR";
|
||||
i_SqlTyp[21] = SQL_NUMERIC; s_SqlTyp[21] = "SQL_NUMERIC";
|
||||
i_SqlTyp[22] = SQL_LONGVARCHAR; s_SqlTyp[22] = "SQL_LONGVARCHAR";
|
||||
i_SqlTyp[23] = SQL_REAL; s_SqlTyp[23] = "SQL_REAL";
|
||||
i_SqlTyp[0] = 23; s_SqlTyp[0] = "";
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
void BrowserDB::OnFilldbTyp()
|
||||
{
|
||||
i_dbTyp[1] = DB_DATA_TYPE_VARCHAR; s_dbTyp[1] = "DB_DATA_TYPE_VARCHAR";
|
||||
i_dbTyp[2] = DB_DATA_TYPE_INTEGER; s_dbTyp[2] = "DB_DATA_TYPE_INTEGER";
|
||||
i_dbTyp[3] = DB_DATA_TYPE_FLOAT; s_dbTyp[3] = "DB_DATA_TYPE_FLOAT";
|
||||
i_dbTyp[4] = DB_DATA_TYPE_DATE; s_dbTyp[4] = "DB_DATA_TYPE_DATE";
|
||||
i_dbTyp[0] = 4; s_dbTyp[0] = "";
|
||||
i_dbTyp[1] = DB_DATA_TYPE_VARCHAR; s_dbTyp[1] = "DB_DATA_TYPE_VARCHAR";
|
||||
i_dbTyp[2] = DB_DATA_TYPE_INTEGER; s_dbTyp[2] = "DB_DATA_TYPE_INTEGER";
|
||||
i_dbTyp[3] = DB_DATA_TYPE_FLOAT; s_dbTyp[3] = "DB_DATA_TYPE_FLOAT";
|
||||
i_dbTyp[4] = DB_DATA_TYPE_DATE; s_dbTyp[4] = "DB_DATA_TYPE_DATE";
|
||||
i_dbTyp[0] = 4; s_dbTyp[0] = "";
|
||||
}
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user