vo2ado Vo2Ado is a Class Library for Visual Objects, that allows developers to connect to OLE-DB data sources, without having to go through the Microsoft ODBC layer, but by using the Microsoft ActiveX Data Objects technology.
  Buy Now  FAQ
   Download  Docs

Vo2Ado Specifications:

Vo2Ado is a Class Library for Visual Objects that gives VO developers a very fast and direct interface to data stored in OLE-Db Data sources. This class library only depends on the Visual Objects System Classes, and is completely developed in Visual Objects 2.5. All support needed to connect to ADO through COM is built into the library. The library supports all ADO versions from 2.0 until 2.8.

The Class library consists of a set of classes that talk directly to the ADO and a higher level DbServer compatible class that allows VO developers to use ADO in combination with the VO DataWindow and Databrowser classes (but also with 3rd party tools such as bBrowser and GridPro)

The class library includes support for:

  • Ado Base classes
  • Ado X (DDL and Security)
  • Ado Events

The product comes with a special Vo2Ado Editor Subsystem for the VO IDE, so you can quickly generate classes for existing tables. This subsystem generates both the necessary binary entities to use Ado tables with the auto-layout function in the Window Editor, and also generates source code for the database classes. The source code generation is template based, so highly configurable. (For creating and maintaining databases we recommend other tools such as the design tools that come with most databases)

An example of some Vo2Ado code to open a table and show the data on a data window:

METHOD Start CLASS App
	LOCAL oConn     AS AdoConnection
	LOCAL oSrv	AS AdoServer
	LOCAL oDw	AS DataWindow
	oConn := OpenConnection()
	oDw := DataWindow{SELF}
	oDw:QuitOnClose := TRUE
        oSrv  := AdoServer{"Employee",oConn,AdOpenStatic, AdLockOptimistic,;
	                    adCmdTable}
	oDw:Use(oSrv)
	oDw:ViewTable()
	oDw:Caption := oSrv:Name
	oDw:Show(SHOWCENTERED)
	SELF:Exec()
RETURN SELF

FUNCTION OpenConnection AS AdoConnection
    LOCAL sError AS STRING
    LOCAL oConn AS AdoConnection
    LOCAL uError    AS USUAL
    LOCAL cbErr AS CODEBLOCK
    cbErr := ErrorBlock({|e|_Break(e)})
    BEGIN SEQUENCE
        oConn := AdoConnection{}
        oConn:ConnectionTimeout := 5
        oConn:ConnectionString := "Data Source=(LOCAL);" + ;
             "Initial Catalog=pubs;User Id=sa;Password=;"
        oConn:CursorLocation := adUseClient
    RECOVER USING uError
        ErrorBox{,uError:description}:Show()
        GetAppObject():Quit()
    END
    BEGIN SEQUENCE
        oConn:Open(NIL,NIL,NIL,NIL)
    RECOVER USING uError
    END
    IF oConn:State <> adStateOpen
        // Error occurred
        IF oConn:Errors:Count > 0
            // Ado Error
            sError := oConn:Errors:Item(1):description
        ELSEIF IsInstanceOfUSUAL(uError, #Error)
            sError := uError:description
        ELSE
            sError := "Unknown error"
        END IF
        ? "Error when making connection: ", sError
        ErrorBox{,uError:description}:Show()
        GetAppObject():Quit()
    ENDIF
    ErrorBlock(cbErr)
    RETURN oConn

Version comparison

 standardpro
Vo2Ado Class Library with:
  • ADO Classes
  • ADOX Classes
  • ADO Data Server Classes
Vo2Ado Editor Subsystem
Vo2Ado RDD  
Vo2Ado SQL Replacement Classes  
Vo2Ado Classmate Classes  
Source code Vo2Ado Class Library  
Source code Vo2Ado SQL Replacement Classes  
Source code Vo2Ado Classmate Classes  
Source code Vo2Ado Editor Subsystem  
Newsgroup support
Email support