home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
dbutil.zip
/
BUFOP.ZIP
/
DBSTUFF.SQC
< prev
next >
Wrap
Text File
|
1993-10-08
|
3KB
|
115 lines
#include "dbstuff.hpp"
EXEC SQL INCLUDE 'dbstuff.sqh';
EXEC SQL INCLUDE SQLCA;
/*******************************************************************
*
* Database stuff to read table & column information
*
*******************************************************************/
char * column::getName(){
return name;
}
char column::getType(){
return type;
}
char * column::getRemarks(){
return remarks;
}
shor column::getLen(){
return len;}
short column::getColNbr(){
return colNbr();}
ostream & operator <<(ostream & aStream, column const & aCol){
aStream << name << " "
<< type << " "
<< len << " "
<< remarks;
return aStream;
}
/*******************************************************************
*
* Specify the tabe to use to find columns
*
*******************************************************************/
void colList::selectCol(char * tablename){
strcpy(name,tablename);
}
/*******************************************************************
*
* Fill the container
*
*******************************************************************/
columnSet & operator << (columnSet, colList & c){
EXEC SQL DECLARE colCursor CURSOR FOR
SELECT
NAME,REMARKS,COLTYPE,NULLS,LENGTH,COLCARD,HIGH2KEY,LOW2KEY,
AVGCOLLEN,KEYSEQ
FROM SYSIBM.SYSCOLUMNS;
EXEC SQL OPEN colCursor;
while( sqlca.scqcode = 0){
EXEC SQL FETCH colCursor
INTO
:name,:remarks,:type,:nulls,:len,:colNbr,
:highKey2,:lowKey2,:avgColLen,:keySeq;
if( sqlca.sqlcode = 0){
c.add(this);
}
} // end while
EXEC SQL CLOSE colCursor;
EXEC SQL COMMIT WORK;
return c;
} // end fill container
/*******************************************************************
*
* read table by specifying the table name
*
*******************************************************************/
void table::getTable(char * tablename) {
strcopy(name,tablename);
SELECT CREATOR,TYPE,CTIME,REMARKS,COLCOUNT,CARD
PARENTS,CHILDREN,SELFREFS,KEYCOLUMNS
INTO
:creator, :type, :ctime, :remarks,:nbrCols,
:nbrRows, :parents, :children, :selfRefs, :keyCol;
FROM SYSIBM.SYSTABLES
WHERE NAME = :name;
}
&operator <<(ostream & aStream, Table const & aTable) {
aStream << name << creator << type << remarks;
// all elements do
return aStream;
}
void bind(char * DBName) {
sqlabind ("DBStuff.bnd", /* program name */
DBName, /* database */
NULL, /* spare */
NULL, /* message file */
"USA", /* date/time format */
sqlca); /* SQLCA */
}