Top 5 Recent Articles
- Algorithms (13)
- All (401)
- Biography (1)
- Blog (44)
- Business Requirements (1)
- Commentary (1)
- Customers (2)
- Data Models (1)
- Education (2)
- GeoRaptor (2)
- Image Processing (2)
- Import Export (5)
- Licensing (2)
- Linear Referencing (3)
- Manifold GIS (3)
- Mapping (1)
- MySQL Spatial (7)
- Networking and Routing (including Optimization) (3)
- Open Source (16)
- Oracle Spatial and Locator (177)
- PostGIS (33)
- Published Articles (1)
- Recommendations (1)
- Services (1)
- Software Change Log (1)
- Source Code (35)
- Space Curves (9)
- Spatial Database Functions (102)
- Spatial DB comparison (1)
- Spatial XML Processing (10)
- SQL Server Spatial (General) (83)
- SQL Server Spatial (LRS) (38)
- Standards (1)
- Stored Procedure (15)
- Tessellation or Gridding (9)
- Tools (2)
- Training (2)
VB6 Oracle Spatial or Locator OO4O code
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.