The table that is used in the example code is:
create table EMP
(empno NUMBER,
ename VARCHAR2(10),
hireDate Date);
Database Query
This program expain how to select the contents of the EMP table.
#include <DbManager.h>
#include <iostream>
using namespace std;
using namespace oracle::occi;
const string sqlString("select empno, ename, hiredate from emp");
const string dateFormat("DD-MON-YYYY HH24:MI:SS");
int main(int argc, char **argv)
{
if (argc != 2)
{
cerr << "\nUsage: " << argv[0] << " <db-user-name>\n" << endl;
exit(1);
}
string userName = argv[1];
// Initialize OracleServices
DbManager* dbm = NULL;
OracleServices* oras = NULL;
Statement *stmt = NULL;
ResultSet *resultSet = NULL;
try
{
// Obtain OracleServices object with the default args.
// The default args creates OracleServices with an environment of
// Environment::OBJECT|Environment::THREADED_MUTEXED
dbm = new DbManager(userName);
oras = dbm->getOracleServices();
// Obtain a cached connection
Connection * conn = oras->connection();
// Create a statement
stmt = conn->createStatement(sqlString);
int empno;
string ename;
Date hireDate;
string dateAsString;
// Execute query to get a resultset
resultSet = stmt->executeQuery();
while (resultSet->next())
{
empno = resultSet->getInt(1); // get the first column returned by the query;
ename = resultSet->getString(2); // get the second column returned by the query
hireDate = resultSet->getDate(3); // get the third column returned by the query
dateAsString="";
//You cannot check for null until the data has been read
if (resultSet->isNull(1))
{
cout << "Employee num is null... " << endl;
}
if (resultSet->isNull(2))
{
cout << "Employee name is null..." << endl;
}
if (resultSet->isNull(3))
{
cout << "Hire date is null..." << endl;
}
else
{
dateAsString=hireDate.toText(dateFormat);
}
cout << empno << "\t" << ename << "\t" << dateAsString << endl;
}
// Close ResultSet and Statement
stmt->closeResultSet(resultSet);
conn->terminateStatement(stmt);
// Close Connection and OCCI Environment
delete dbm;
}
catch (SQLException& ex)
{
if (dbm != NULL)
{
dbm->rollbackActions(ex, stmt, resultSet); // free resources and rollback transaction
}
}
return 0;
}






MultiQuote






|