The following code sample illustrates connecting to an Oracle Spatial database and adding custom reactors. Custom reactor declarations are in MyMapOracleReactors.h, one of the files included at the beginning of the sample. The "Subclassing Custom Reactors" sample shows what such a file would contain.
Managing the connection (overview)
Subclassing Custom Reactors (sample)
Other related samples
#include "StdAfx.h"
#include "StdArx.h"
#include "AcMapOracleConnection.h"
#include "MyMapOracleReactors.h" // Custom reactors
BOOL ConnectToOracle()
{
// Get the connection object
AcMapOracleConnection *pConnection = AcMapOracleGetConnection();
// Initialize reactors
// Custom reactor types are declared in MyMapOracleReactors.h
MyConnectionReactor *pConnectReactor = new MyConnectionReactor();
MyExportReactor *pExportReactor = new MyExportReactor();
MyImportReactor *pImportReactor = new MyImportReactor();
// Add reactors to connection class
pConnection->AddConnectionReactor(pConnectReactor);
pConnection->AddExportReactor(pExportReactor);
pConnection->AddImportReactor(pImportReactor);
BOOL bConnect = FALSE;
// If no database is connected, connect one
if(!pConnection->IsConnected())
{
bConnect = pConnection->Connect("Scott","TestDB","Scott","Tiger");
}
else
{
acutPrintf("Already connected to Oracle!!");
return FALSE;
}
// Check if schema is valid
if(bConnect)
{
if(pConnection->IsSchemaValid())
acutPrintf("\nSchema is valid for this connection\n");
else
acutPrintf("\nSchema is not valid\n");
}
// Get the service name
char *pService = 0;
pService = new char[80];
pService = pConnection->Service();
acutPritnf("\nService is %s\n", pService);
delete [] pService;
// Get the schema name
char *pSchema = 0;
pSchema = new char[80];
pSchema = pConnection->Schema();
acutPrintf("\nSchema is %s\n", pSchema);
delete [] pSchema;
// Get the user name
char *pUserName = 0;
pUserName = new char[80];
pUserName = pConnection->UserName();
acutPrintf("\nUserName is %s\n", pUserName);
delete [] pUserName;
// Disconnect the database
if(pConnection->Disconnect())
acutPrintf("\nDisconnected successfully from Oracle\n");
else
acutPrintf("\nError disconnecting from Oracle\n");
//Remove reactors from connection interface
pConnection->RemoveConnectionReactor(pConnectReactor);
pConnection->RemoveExportReactor(pExportReactor);
pConnection->RemoveImportReactor(pImportReactor);
}