Go to content Go to navigation and search


Software Documentation


SQL Server

Oracle Objects (New)

Oracle Packages (Original)

Spatial Companion For Oracle (SC4O)


    PL/SQL Objects from "Applying and Extending Oracle Spatial"
    TESSELATE and CENTROID package updates
    Applying and Extending Oracle Spatial: Source Code Problem
    CENTROID package use with ESRI's sde.st_geometry
    Changes to CENTROID and TESSELATE packages
    CENTROID Package now returns centroid of multi-linestring
    New versions of PL/SQL packages uploaded
    VB6 Oracle Spatial or Locator OO4O code
    Spatial PL/SQL Packages by Example
    Catalog Registry Tool
    Image Catalog Tool
    Oracle Spatial PL/SQL and VB6 Source Code



RSS / Atom

Email me


Creative Commons License
All Blog Articles, Data Models and Free Source Code by Simon Greener, The SpatialDB Advisor is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

VB6 Oracle Spatial or Locator OO4O code

Monday January 01 2007 at 09:55

I have just uploaded a radically revised and improved VB6 code for accessing Oracle Spatial or Locator.

In revising the code I came to appreciated something the Catholic priest who married my wife and I once said to me: “True scholarship requires leisure”. I have had the lesiure to revise the code and am horrified by what was in the previous code. Though well intentioned, I simply did not have the time to address, in a systematic fashion, all aspects of squeezing the maximum performance out of a set of code to access Sdo_Geometry data in VB6. (I will convert the code to VB.NET but not yet!).

From the history notes of the library here are some highlights:

  • Modified code to bring back in some improvements from PL/SQL port.
  • Added Tolerance Property and ObjectTolerances() function to set its values.
  • included support for min_resolution parameter in Sdo_Filter/FindFirst
  • Overhauled asPoint, asMultiPoint, asPolyline and asPolygon routines to improve readibility and speed
  • Upped default lFetchArrayBufferSize to 524288 bytes
  • Added ObjectTolerances routine to extract sdo_tolerance from XXX_SDO_GEOM_METADATA views
  • Some type and object name changes
  • Modified implementation of mobjGF.isNull()
  • Fixed bug with converting circle/circulararc to vertex-connected segments when ArcToChord value is large
  • Fixed handling of 3D data
  • Added ability to output shape data as ADFText/EWKT via FindFirst/MoveNext and mobjGF.AsString
  • Cleaned up object memory handling in some routines
  • Removed setting mutLayerProperties.layerMBR in ObjectExtent()
  • Simplified setting of all SQL properties and moved all checking of rules and combinations in the BuildSQL function.
  • Removed support for group by, order by and having clauses to reduce complexity (can be used via the directly setting a complete SQL statement.
  • Recreated separate CGeometryFactory class from the GF_ inline code. Involved splitting out of SQL SELECT field indexes from actual sdo_geometry data in mutGeomUDTFields
  • Implemented use of ErrorHandler resource strings in error/warnings.
  • Replaced ORADYN_READONLY with ORADYN_NOCACHE to improve read performance and reduce memory use.
  • Improved dynaset processing efficiency by implementing performance tip”Avoiding Multiple Object Reference” in OO4O documentation
  • Simplified handling of optional extent in FindFirst
  • Added Parameter support to FindFirst in order to improve cursor sharing on database server
  • Made actual FindFirst modified query a returnable property to aid client debugging
  • Load error messages on layer startup

Also, added lots more tests to the LibTest.vbp project.

Creative Commons License

post this at del.icio.uspost this at Diggpost this at Technoratipost this at Redditpost this at Farkpost this at Yahoo! my webpost this at Windows Livepost this at Google Bookmarkspost this to Twitter

Comment [1]

Hi Simon
your article looks fantastic! & am a newbee to store procedure via VB6 and looking forward to learn from you about the vb6 & Oracle OO4O concept .So can you please share the VB6 codes & the concepts behind. This will really help to improvise my understanding OO4O thru VB6.Thanks

Prabhu Senthil

Prabhu 26 January 2015, 10:21 #