Known Problems

<< Click to Display Table of Contents >>

Navigation:  The Vo2Ado RDD > Basics >

Known Problems

Previous pageReturn to chapter overviewNext page

Below is a list of the limitations that we are currently aware of

 

1. Case Sensitivity

The VO RDD system translates all Table names, index names and field names to upper case. This may cause a problem if you have a server that is case sensitive.

So even when your code looks like this

         USE authors

         INDEX ON au_lname TO lname

 

the RDD will receive the table name AUTHORS , the index expression AU_LNAME and the index name L_NAME.

 

Workaround

The  workarounds to this are:

Change your server to case-insensitive

Create ADF and ADX files manually, and make sure that table names and column names are in the correct case in these files.

 

2. Multi-workarea indexes

 

You can only use fields from the same workarea in index expressions. The following construct that works fine for DBF files, DOES NOT work with the VO2ADO RDD:

 

 USE AA

 USE BB

 SELECT AA

 SET RELA TO AA_ID into B

 INDEX ON B->BB_ID INTO AA_BB_ID

 

3. User Defined Functions in indexes

 

The RDD does not (directly) support user defined functions in indexes.

 

Workaround

Through a callback mechanism you may convert these to meaningful functions on the server.

 

4. Indexing (and scopes) on logical values not supported

 

The RDD does not (directly) support indexing on logical values.

 

Workaround

Create a character field that contains 'T' or 'F' and index on that field

 

5. DbServer:Seek() does not seem to work with DataBrowsers

 

The code in DbServer:Seek() generates a NOTIFYRECORDCHANGE, and this may cause weird behavior with the data browser if you are using the default record number support of the Vo2Ado RDD (and not the RecnoColumn property). You can work around this by subclassing DbServer:Seek() and generating a NOTIFYFILECHANGE.

 

6.DbServer class tries to write to Auto number (Identity) columns

 

When you are using the DbServer class with the CCOPTIMISTIC Concurrency, you may experience problems because the server class will try to write to columns that are non-updatable, such as Auto number (or Identity) columns.

Switching the Server class to CCNONE solves the problem, and also improves the speed.

 

 

7.Reserved word conflicts

When you create a SQL table from your application using DbCreate() you may accidently include SQL Reserved words as column name, such as USER, GROUP, TEXT, DATE, DECIMAL etc. This will not work for most of the servers. The RDD will generate a ConnectionCallback:WarningMessae when ytou do so, but it is up to you to resolve this in your application. Usually you can work around this my adding an extra character to the column name, such as an underscore, and by using the DbFieldInfo() function to define an alias for the field equal to the the original field name.

See for more info the chapter about names and reserved words