Listing 2: The stock quote client program
// Sample client that creates an embedded sql object, and then // allows the user to select data out of the object using sql. // Note, the database is stored in shared memory and the access // is controlled by the C++ object. #include <afxwin.h> #include <iostream.h> #include "EMBSQL.h" void main(int argc, char *argv[]) { SCCollection *ptr; // holds the row data (a collection) void **row; // a row out of ptr (a row an array) char buf[512]; // input buffer CESql* a = new CESql(); // get the embsql object if (a->ReturnError() != "") { // watch out for errors cout << a->ReturnError() + "\n"; exit(1); } a->PrintStack(false); // set to t to see the stack while(true) { // read from console and execute it cout << "embsql>"; cout.flush(); cin.getline(buf,512); if (buf[0] == 0) exit(0); if ((ptr = a->Sql(buf)) != NULL) { // execute the sql for (int i=0; a->GetColumnCount()>-1, i<ptr->GetSize(); i++) { // for each row, get it and print it row = (void **)ptr->GetAt(i); SCTable::PrintRow(a->GetColumnInfo(), a->GetColumnCount(),row); // use helper } } if (a->ReturnError() != "") { cout << a->ReturnError() + "\n"; cout.flush(); } } }