Exporting to an Oracle Spatial database: code sample

Land Desktop Development ARX CPP SDK

 

Exporting to an Oracle Spatial Database

The following code sample illustrates exporting data from a project drawing to an Oracle Spatial database.

Note  The sample assumes an open project drawing containing some objects. It also assumes that the connection object is actually connected to a database. Click "Connecting to an Oracle Spatial Database" for sample code.

#include "StdAfx.h"
#include "StdArx.h"
#include "AcMapOracleConnection.h"
#include "AcMapOracleExport.h"

BOOL ExportToOracle()
{

// Get the connection object
AcMapOracleConnection *pConnection = AcMapOracleGetConnection();

//Instantiate an export object
AcMapOracleExport *pExport = new AcMapOracleExport(pConnection);

bool bExport = false;

// Export 1
// Default options...
//    From all layers, export
//       object data, block attributes, link templates
//    Erase drawing objects after export
bExport = pExport->ExportObjectsAll();

if(bExport)
 acutPrintf("\nExport 1 successful!!\n");
else
 acutPrintf("\nExport 1 failed!\n");

// Export 2
//    From selected layers 0, Line, and Arc, export 
//       object data, block attributes, link templates
//    Erase drawing objects after export

bExport = pExport->ExportObjectsAll( 
      "0,Line,Arc",
      AcMapOracleExport::kBlockAttributes |
      AcMapOracleExport::kObjectData      |
      AcMapOracleExport::kLinkTemplates   |
      AcMapOracleExport::kEraseExported );

if(bExport)
   acutPrintf("\nExport 2 successful!!\n");
else
   acutPrintf("\nExport 2 failed!\n");

// Export 3
//    From all layers export all objects, but not
//       object data, block attributes, link templates
//    With erased objects, delete corresponding record
//    Erase drawing objects after export

bExport = pExport->ExportObjectsAll( 
      "*",
      AcMapPracleExport::kUpdateErased |
      AcMapPracleExport::kEraseExported );

if(bExport)
   acutPrintf("\nExport 3 successful!!\n");
else
   acutPrintf("\nExport 3 failed!\n");

// Export 4
//    Export objects in an ObjectIdArray

AcDbObjectIdArray idArray;

// idArray can be filled by manually 
// selecting Objects from Model space 
// or iterating thorough Model Space 
// and selecting all

bExport = pExport->ExportObjects( 
      idArray,
      AcMapPracleExport::kBlockAttributes |
      AcMapPracleExport::kObjectData      |
      AcMapPracleExport::kLinkTemplates   |
      AcMapPracleExport::kEraseExported );

if(bExport)
   acutPrintf("\nExport 4 successful!!\n");
else
   acutPrintf("\nExport 4 failed!\n");

// Export 5
//    Insert new rows in database (objects are new) 
//    From all layers export all objects, and include 
//       object data, block attributes, link templates 
//    Erase drawing objects after export

bExport = pExport->ExportObjects( 
      "*",
      AcMapPracleExport::kDisregardIDs    |
      AcMapPracleExport::kBlockAttributes |
      AcMapPracleExport::kObjectData      |
      AcMapPracleExport::kLinkTemplates   |
      AcMapPracleExport::kEraseExported );

if(bExport)
   acutPrintf("\nExport 5 successful!!\n");
else
   acutPrintf("\nExport 5 failed!\n");

}