If you are using the BDE there is a problem with the Access 2000 ODBC driver and
the BDE.
This is from a July Tech Alert
"I. Current Tech Alerts
=================================================
Product: Delphi/BDE
Version: 4.0/5.0
Description: Problems with Newest MS Access driver
Symptoms: "Record Key Deleted" or "Size Mismatch" error.
Steps to Reproduce:
Installing the newest version of the MS Access
ODBC driver, version 4.00.3711.08, can cause these
errors. This new version comes with Windows 98
release 2, Access 2000, the Microsoft Data Access
Components (MDAC) and perhaps other sources.
The error is happening because Microsoft has made a
change in the driver regarding the length of fields,
and now the BDE is expecting the field length to be
twice as long as it actually is. For example, a
field length may be 30 in the Access database, but
the BDE reports it to be 60.
Microsoft documentation specifies that the length,
in bytes, of data transferred (the buffer size) on
an SQLGetData, SQLFetch, or SQLFetchScroll operation
shall be the same as the COLUMN_SIZE for binary
and character data. This is not in fact the case
with the new driver; the buffer is actually larger
than COLUMN_SIZE.
The BDE does not look at COLUMN_SIZE because for
numerical data it may not be the same as the
buffer size. Instead the BDE looks at the buffer
size which now has the erroneous value.
Workarounds:
1. Use the Delphi native driver instead of ODBC.
2. Use an older version of the Access ODBC driver.
3. In Delphi 5: Use ADO components to access the
MS JET database engine or to access ODBC drivers.
Accessing the ODBC driver this way is not
optimal, but does bypass the BDE which will
avoid the problem."
An update to this, since this came out MS changed the ODBC3.5 spec so that the
A2K ODBC driver is now complaint with the spec instead of fixing the driver.
The BDE supports ODBC 2.5 at this time.
"Glenn Martin (Chemist/System Support Analyst)" wrote:
Quote
> I created an application in Delphi Professional 5.0 that was interfacing
> with an MSAccess 97 database. The application uses alot of SQL
> statements.This version of the application ran fine. My customer upgraded
> his system to MS Office 2000 and asked that I convert the database to Access
> 2000.
--
Jeff Overcash (TeamB)
(Please do not email me directly unless asked. Thank You)
The bond that links your true family is not one of {*word*76}, but of respect and joy
in each others life. Rarely do members of one family grow up under the same
roof. (R Bach)