CTestLOB::CTestLOB(void) { DBAPI_RegisterDriver_CTLIB(); const CDBDefaultConnParams def_params("DBAPI_DEV1", "DBAPI_test", "allowed"); const CCPPToolkitConnParams params(def_params); auto_ptr<I_DriverContext> dc(MakeDriverContext(params)); m_Conn.reset(dc->MakeConnection(params)); }
int CDemoApp::RunSample(void) { IDataSource* data_source = NULL; try { DBLB_INSTALL_DEFAULT(); CDriverManager& dm = CDriverManager::GetInstance(); #ifdef FTDS_IN_USE DBAPI_RegisterDriver_FTDS(); data_source = dm.CreateDs("ftds"); #else DBAPI_RegisterDriver_CTLIB(); data_source = dm.CreateDs("ctlib"); #endif unique_ptr<IConnection> conn(data_source->CreateConnection()); conn->Connect(GetUserName(), GetPassword(), GetServerName() ); unique_ptr<ICallableStatement> auto_stmt(conn->GetCallableStatement("sp_databases")); // unique_ptr<ICallableStatement> auto_stmt(conn->GetCallableStatement("sp_who")); auto_stmt->Execute(); while(auto_stmt->HasMoreResults()) { if(auto_stmt->HasRows()) { unique_ptr<IResultSet> rs(auto_stmt->GetResultSet()); unique_ptr<const IResultSetMetaData> md(rs->GetMetaData()); switch(rs->GetResultType()) { case eDB_RowResult: while(rs->Next()) { for (unsigned int j = 1; j <= rs->GetTotalColumns(); ++j) { const CVariant& value(rs->GetVariant(j)); const EDB_Type rt(md->GetType(j)); if (rt == eDB_Char || rt == eDB_VarChar) { cout << md->GetName(j) << ": " << (value.IsNull()? "" : value.GetString()) << " \t"; } else if (rt == eDB_Int || rt == eDB_SmallInt || rt == eDB_TinyInt) { cout << md->GetName(j) << ": " << value.GetInt8() << ' '; } } cout << endl; } break; case eDB_ParamResult: while(rs->Next()) { // Retrieve parameter row } break; default: break; } } } } catch (CDB_Exception& e) { CDB_UserHandler_Stream myExHandler(&cerr); myExHandler.HandleIt(&e); return 1; } catch (const CException&) { return 1; } return 0; }