Advantage Developer Zone


Advantage Product Download

Advantage RDD for CA-Visual Objects Release 9.0 for Windows 32-bit

This release is unsupported. Downloads provided as a courtesy.


Notes: - Advantage Visual Objects Driver

This Service Update of the Advantage Visual Objects Driver addresses the following issues:

  1. Fixed an issue where the RDD would truncate string data if it contained a NULL byte in the middle. - Advantage Visual Objects Driver

This Service Update of the Advantage Visual Objects Driver addresses
the following issues:

  1. Added Vulcan.NET support as a beta driver, see notes below.


Please post all bug reports, suggestions, nitpicks, and any other comments about the RDDs to the news:// newsgroup. As this is a beta release, your feedback now can greatly affect the future of the RDDs.

For the most part the Vulcan.NET RDD interface is the same as in VO. However, there are a few new things you need to do in your application to use Advantage.

1. You must call System.Reflection.Assembly.Load( "AdvantageRDD" ) before you can use any Advantage RDDs. This call will load the Advantage RDD assembly and make available the RDDs within. For this call to succeed, you need to have the Advantage RDD assembly (AdvantageRDD.dll) in your application directory. A simple way to ensure the assembly is available is to add a reference to AdvantageRDD.dll to your project and set the "CopyLocal" property to TRUE. This will cause Visual Studio to copy AdvantageRDD.dll into your application directory automatically. Another solution is to provide the entire path to the assembly like so: System.Reflection.Assembly.LoadFile( "C:\program files\advantage 9.0\\AdvantageRDD.dll" ). However, depending on how you distribute your Vulcan.NET application this might not always work.

2. The Advantage RDD names in Vulcan.NET have changed to include the Advantage namespace. So when you reference an Advantage RDD such as AXDBFCDX, you need to also include the namespace like so: Advantage.AXDBFCDX. This applies to all the Advantage RDDs (AXDBFCDX, AXDBFNTX, AXDBFVFP, ADSADT, AXSQLCDX, AXSQLNTX, AXSQLADT, AXSQLVFP).

3. If your application uses ACE APIs or functions from the ACE32 or DBFAXS libraries, you need to include the ace.vh header provided in c:\Program Files\Advantage 9.0\Vulcan.NET. Simply add #include "ace.vh" to your source file and make sure Visual Studio can find it (add C:\Program Files\Advantage 9.0\Vulcan.NET to the "Additional Include File Paths" setting of your project). Because some of the types used in ace.vh are "unsafe" in terms of the .NET framework, if you include ace.vh you must enable the "Allow Unsafe Code" option in your project's Language settings.

4. To use the Advantage SQL RDDs, first add AdvantageRDD as a reference to your project. Then add a using clause for the Advantage namespace to the top of your source file (using Advantage). At that point you should be able to instantiate the AdsSQLServer class, same as in VO. Note that in the current Vulcan.NET runtime (, you must provide all the arguments to the AdsSQLServer constructor. IOW, you cannot leave some arguments empty as default arguments. This will be fixed in the next Vulcan.NET release.

5. Advantage connections are now stored as IntPtr instead of DWORD or LONGINT. In .NET we support both 32bit and 64bit platforms. As a result, we now need to store our Advantage handles in a type that supports both 32 & 64 bits. The IntPtr was created for just that purpose. So now anywhere in your code that you use an Advantage connection, table, index, statement, or cursor handle, you must change the type to IntPtr. One side note is that you cannot assign an IntPtr the integer value zero (0). You must use IntPtr.Zero instead.