1
/**************************************************
4
**************************************************
5
* This code was created by Peter Harvey @ CodeByDesign.
6
* Released under GPL 18.FEB.99
8
* Contributions from...
9
* -----------------------------------------------
10
* Peter Harvey - pharvey@codebydesign.com
11
**************************************************/
13
#include "classODBC.h"
15
#include <classDrivers.h>
16
#include <classDataSources.h>
19
// ***********************************
21
// ***********************************
23
void my_msgBox( const QString & className,
24
const QString & actionName,
29
const QString & moreInfo,
30
QMessageBox::Icon icon )
32
QString caption = "DataManager - " + className + " - " + actionName ;
33
QString text = actionName ;
36
text += " failed, rc=" + QString::number(rc) ;
38
if ( hEnv || hDbc || hStmt )
40
char szState[SQL_SQLSTATE_SIZE+1] ; szState[0] = 0 ;
41
char szBuf[SQL_MAX_MESSAGE_LENGTH+1] ; szBuf[0] = 0 ;
42
SQLINTEGER sqlCode = 0;
43
SQLSMALLINT length = 0 ;
45
while (SQL_SUCCEEDED(SQLGetDiagRec( hStmt ? SQL_HANDLE_STMT : hDbc ? SQL_HANDLE_DBC : SQL_HANDLE_ENV,
46
hStmt ? hStmt : hDbc ? hDbc : hEnv,
53
text += QString().sprintf("\n[%d] SQLSTATE:%s SQLCODE:%d %s", nRec, szState, sqlCode, szBuf) ;
56
if ( !moreInfo.isEmpty() )
57
text += "\n\nInfo:" + moreInfo ;
59
QMessageBox(caption, text, icon, QMessageBox::Ok | QMessageBox::Default | QMessageBox::Escape, QMessageBox::NoButton, QMessageBox::NoButton ).exec() ;
62
// ***********************************
63
// ***********************************
65
classODBC::classODBC( QListView *pParent, classCanvas *pCanvas )
66
: classNode( pParent, pCanvas ) , pDrivers ( NULL ) , pDataSourcesUser( NULL ) , pDataSourcesSystem( NULL )
68
setPixmap( 0, QPixmap(xpmODBC) );
71
setText( 2, "Open Database Connectivity" );
72
setExpandable( TRUE );
75
void classODBC::setOpen( bool bOpen )
77
if ( bOpen && !childCount() ) // Only create item once
79
// ADD CHILD NODES; only classODBC knows what they may be
80
pDrivers = new classDrivers ( this, NULL, pCanvas );
81
pDataSourcesSystem = new classDataSources( this, pDrivers, pCanvas, System );
82
pDataSourcesUser = new classDataSources( this, pDataSourcesSystem, pCanvas, User );
85
QListViewItem::setOpen( bOpen );
88
void classODBC::selectionChanged( QListViewItem *p )
90
if ( pDataSourcesUser ) pDataSourcesUser->selectionChanged( p );
91
if ( pDataSourcesSystem ) pDataSourcesSystem->selectionChanged( p );