//-- all #ifdefs that the whole Project needs. ------------------------------
//---------------------------------------------------------------------------
#ifdef __GNUG__
- #pragma implementation
- #pragma interface
+#pragma implementation
+#pragma interface
#endif
//---------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
//---------------------------------------------------------------------------
#ifdef __BORLANDC__
- #pragma hdrstop
+#pragma hdrstop
#endif
//---------------------------------------------------------------------------
#ifndef WX_PRECOMP
- #include "wx/wx.h"
+#include "wx/wx.h"
#endif
//---------------------------------------------------------------------------
#include <wx/dbtable.h>
//---------------------------------------------------------------------------
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();
+ 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";
- }
- msg.Append ("\nODBC errors:\n");
- // msg += "\n";
- /* Scan through each database connection displaying
- * any ODBC errors that have occured. */
- for (DbList *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;
+ /* Scan through each database connection displaying
+ * any ODBC errors that have occured. */
+ for (DbList *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
//////////////////////////////////////////////////////////////////////////////////
// BJO 20000115 : New stuff : dialog to ask for username and password
//////////////////////////////////////////////////////////////////////////////////
class UserDialog : public wxDialog
{
- public:
+public:
UserDialog(wxWindow* parent);
virtual ~UserDialog();
void OnOK(wxCommandEvent& event);
wxString s_UserName, s_Password;
-
- private:
+
+private:
wxButton *m_OK;
wxStaticText *m_Label1, *m_Label2;
wxTextCtrl *m_UserName, *m_Password;
-
-
+
+
DECLARE_EVENT_TABLE()
-};
+ };
//---------------------------------------------------------------------------
BEGIN_EVENT_TABLE(UserDialog, wxDialog)
EVT_BUTTON(wxID_OK, UserDialog::OnOK)
-END_EVENT_TABLE()
-//---------------------------------------------------------------------------
-UserDialog::UserDialog(wxWindow *parent):
+ END_EVENT_TABLE()
+ //---------------------------------------------------------------------------
+ UserDialog::UserDialog(wxWindow *parent):
wxDialog(parent, -1, _("ODBC user"),wxDefaultPosition, wxSize(310, 300),wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE)
{
wxLayoutConstraints* layout;
layout->height.AsIs();
layout->width.Absolute(75);
m_OK->SetConstraints(layout);
-
+
m_Label1 = new wxStaticText(this, -1, _("User name:"));
layout = new wxLayoutConstraints;
layout->left.SameAs(m_OK, wxLeft);
layout->height.AsIs();
layout->width.AsIs();
m_Label1->SetConstraints(layout);
-
+
m_UserName = new wxTextCtrl(this, -1, "");
layout = new wxLayoutConstraints;
layout->left.SameAs(m_OK, wxLeft);
layout->width.AsIs();
layout->height.AsIs();
m_UserName->SetConstraints(layout);
-
+
m_Label2 = new wxStaticText(this, -1, _("Password:"));
layout = new wxLayoutConstraints;
layout->left.SameAs(m_OK, wxLeft);
layout->height.AsIs();
layout->width.AsIs();
m_Label2->SetConstraints(layout);
-
+
m_Password = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD);
layout = new wxLayoutConstraints;
layout->left.SameAs(m_OK, wxLeft);
layout->top.SameAs(m_Label2, wxBottom, 3);
layout->height.AsIs();
m_Password->SetConstraints(layout);
-
+
s_UserName = "";
s_Password = "";
-
+
Layout();
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void UserDialog::OnOK(wxCommandEvent& WXUNUSED(event))
{
- strcpy(ConnectInf.Uid, m_UserName->GetValue());
- strcpy(ConnectInf.AuthStr, m_Password->GetValue());
- EndModal(1);
+ strcpy(ConnectInf.Uid, m_UserName->GetValue());
+ strcpy(ConnectInf.AuthStr, m_Password->GetValue());
+ EndModal(1);
}
//////////////////////////////////////////////////////////////////////////////////
// BJO 20000115 : end of new stuff
//---------------------------------------------------------------------------
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()
//--------------------------------------------------------------------------------------------
bool BrowserDB::Initialize(int Quite)
{
- if (!OnStartDB(Quite))
- {
- wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
- return FALSE;
- }
- return TRUE;
+ if (!OnStartDB(Quite))
+ {
+ wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
+ return FALSE;
+ }
+ return TRUE;
} // BrowserDB:Initialize
//--------------------------------------------------------------------------------------------
bool BrowserDB::OnStartDB(int Quite)
{
- if (!Quite)
- wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
- if (db_BrowserDB != NULL)
- {
- if (!Quite)
- 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 (!Quite)
- 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(pDoc->p_MainFrame, "Username and Password", wxPoint(100, 100), wxSize(340, 170));
- p_Dlg.s_DSN = ODBCSource;
- p_Dlg.s_User = UserName;
- p_Dlg.s_Password = Password;
- p_Dlg.OnInit();
- 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;
- }
- p_Dlg.Destroy();
- //---------------------------
- 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 = GetDbConnection(&ConnectInf);
- // wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
- if (db_BrowserDB == NULL)
- {
- strcpy(ConnectInf.Dsn, "");
- strcpy(ConnectInf.Uid, "");
- strcpy(ConnectInf.AuthStr, "");
+ wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
+ if (db_BrowserDB != NULL)
+ {
+ if (!Quite)
+ 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 (!Quite)
+ 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(pDoc->p_MainFrame, "Username and Password", wxPoint(100, 100), wxSize(340, 170));
+ p_Dlg.s_DSN = ODBCSource;
+ p_Dlg.s_User = UserName;
+ p_Dlg.s_Password = Password;
+ p_Dlg.OnInit();
+ 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;
+ }
+ p_Dlg.Destroy();
+ //---------------------------
+ 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 = GetDbConnection(&ConnectInf);
+ // wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
+ if (db_BrowserDB == NULL)
+ {
+ strcpy(ConnectInf.Dsn, "");
+ strcpy(ConnectInf.Uid, "");
+ strcpy(ConnectInf.AuthStr, "");
+ if (!Quite)
+ {
+ 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 "),ODBCSource.c_str());
+ }
+ return FALSE;
+ }
+ //--------------------------------------------------------------------------
if (!Quite)
- {
- 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 "),ODBCSource.c_str());
- }
- return FALSE;
- }
- //--------------------------------------------------------------------------
- if (!Quite)
- {
- 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 "),ODBCSource.c_str());
- }
- return TRUE;
+ {
+ 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 "),ODBCSource.c_str());
+ }
+ return TRUE;
}
//--------------------------------------------------------------------------------------------
bool BrowserDB::OnCloseDB(int Quite)
{
- if (!Quite)
- wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
- if (db_BrowserDB)
- {
- db_BrowserDB->Close();
- FreeDbConnection(db_BrowserDB);
-
- // Free Environment Handle that ODBC uses
- if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
- {
- // Error freeing environment handle
- }
- db_BrowserDB = NULL;
- }
- if (!Quite)
- wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
- return TRUE;
+ if (!Quite)
+ wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
+ if (db_BrowserDB)
+ {
+ db_BrowserDB->Close();
+ FreeDbConnection(db_BrowserDB);
+
+ // Free Environment Handle that ODBC uses
+ if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
+ {
+ // Error freeing environment handle
+ }
+ db_BrowserDB = NULL;
+ }
+ if (!Quite)
+ wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
+ return TRUE;
}
//----------------------------------------------------------------------------------------
bool BrowserDB::OnGetNext(int Cols,int Quite)
{
- 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,
+ 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,
+ 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,
+ 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;
+ 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;
}
//----------------------------------------------------------------------------------------
bool BrowserDB::OnSelect(wxString tb_Name, int Quite)
{
- 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 (!Quite)
- {
- wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
- }
- return TRUE;
+ 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 (!Quite)
+ {
+ wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
+ }
+ return TRUE;
}
//----------------------------------------------------------------------------------------
bool BrowserDB::OnExecSql(wxString SQLStmt, int Quite)
{
- //--------------------------------------------------------------------------
- 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 (!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 (!Quite)
+ wxLogMessage(Temp0);
+ else
+ wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
+ return FALSE;
+ }
if (!Quite)
- wxLogMessage(Temp0);
- else
- wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
- return FALSE;
- }
- if (!Quite)
- {
- // wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
- }
- return TRUE;
+ {
+ // wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
+ }
+ return TRUE;
}
//----------------------------------------------------------------------------------------
wxDbInf* BrowserDB::OnGetCatalog(int Quite)
{
- 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;
}
//----------------------------------------------------------------------------------------
wxColInf* BrowserDB::OnGetColumns(char *tableName, int numCols,int Quite)
{
- char UName[255];
- int i;
- strcpy(UName,UserName);
- cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
- cl_BrowserDB->pColFor = new wxColFor[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 wxColFor[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();
- CloseDbConnections();
- 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();
+ CloseDbConnections();
+ 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] = "";
}
//----------------------------------------------------------------------------------------
+
+
+
+
+
+