1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/**************************************************
*
*
**************************************************
* This code was created by Peter Harvey @ CodeByDesign.
* Released under GPL 18.FEB.99
*
* Contributions from...
* -----------------------------------------------
* Peter Harvey - pharvey@codebydesign.com
**************************************************/
#include "classPrimaryKeys.h"
#include "classODBC.h"
#include <qpixmap.h>
#include "keyred.xpm"
classPrimaryKeys::classPrimaryKeys( QListViewItem *pParent, QListViewItem *pAfter, classCanvas *pCanvas, SQLHENV hDbc, const char *pszTable, const char *pszLibrary )
: classNode( pParent, pAfter, pCanvas ) , hDbc( hDbc ), qsTable( pszTable ), qsLibrary( pszLibrary )
{
setText( 0, "PrimaryKeys" );
setText( 1, "" );
setText( 2, "" );
listColumns.setAutoDelete( TRUE );
setPixmap( 0, QPixmap( keyred_xpm ) );
setExpandable( TRUE );
}
void classPrimaryKeys::setOpen( bool bOpen )
{
if ( bOpen ) // Always refresh
LoadColumns();
else
listColumns.clear() ;
QListViewItem::setOpen( bOpen );
}
void classPrimaryKeys::LoadColumns()
{
CursorScoper s(listView()) ;
SQLRETURN nReturn ;
SQLCHAR szColumnName[MAX_COLUMN_WIDTH];
SQLCHAR szKeyName[MAX_COLUMN_WIDTH];
QString qsDesc ;
classColumn *pColumn = NULL ;
// CREATE A STATEMENT
StatementScoper stmt( hDbc ) ; if ( !stmt() ) return ;
// EXECUTE OUR SQL/CALL
if (!SQL_SUCCEEDED(nReturn=SQLPrimaryKeys( stmt(), 0, 0, (SQLCHAR*)qsLibrary.data(), SQL_NTS, (SQLCHAR*)qsTable.data(), SQL_NTS ) ) )
return my_msgBox( "classPrimaryKeys", "SQLPrimaryKeys", nReturn, NULL, NULL, stmt() ) ;
// GET RESULTS
while (SQL_SUCCEEDED(SQLFetch( stmt() ) ) )
{
if (!SQL_SUCCEEDED(SQLGetData( stmt(), 4, SQL_C_CHAR, &szColumnName[0], sizeof(szColumnName), 0 ) ) )
strcpy( (char *)szColumnName, "Unknown" );
if (!SQL_SUCCEEDED(SQLGetData( stmt(), 6, SQL_C_CHAR, &szKeyName[0], sizeof(szKeyName), 0 ) ) )
strcpy( (char *)szKeyName, "Unknown" );
qsDesc.sprintf("Desc=%s", QString((char*)szKeyName).stripWhiteSpace().data() ) ;
listColumns.append( pColumn = new classColumn( this, pColumn, pCanvas, hDbc, QString((char*)szColumnName).stripWhiteSpace(), "KEY", qsDesc ) );
}
}
|