Known Problems
<< Click to Display Table of Contents >> Known Problems |
![]() ![]() ![]() |
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