Hot to access MSAccess 2000 database

I am using BDE 5 to access MSAccess 97 wiht no problems. Now that I upgraded database to MSAccess 2000 I get the "Unrecognized database format" error. What is wrong?
MalensekAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
intheConnect With a Mentor Commented:
i dont have ado components so i dont know ,maybe your access driver is pointing to wrong dll ..
i would go with the diamond access components that meikl gave link to.
i used them for a while with access97 (and now with acess2000) and is so easy to set up its a giveaway for $49.00. no errors problem to deal with at all.

0
 
intheCommented:
hi,
you cant use bde to access the table unless you use the conversion tool in msaccess to convert the database to access97.

see here:
http://www.borland.com/devsupport/bde/faq/FAQ4701B.html

some more info:
5.10 only uses DAO3.0 and DAO3.5.  A2K cannot be accessed with either version. There is also a bug in A2K's ODBC drivers.  Here are two excerpts from Delphi tech alerts that deals with A2K.
 
We have heard cases of people having trouble
using Access 2000 with the BDE. It should be
noted that the BDE's native Access driver (and
Access 97) use DAO while Access 2000 uses ADO.
Attempting to open an Access 2000 table with the
BDE's native driver will give an error.  ODBC
seems to work fine with Access 2000 so this is
the recommended way to go if you're upgrading to
Access 2000.
 
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.
4. convert database to access97.

Regards Barry
0
 
kretzschmarCommented:
hi malensek,

one other work arround

get this comercial bde-replacement
(works also with dao 3.6 -> access 2000)
trial is also available there

http://www.islamov.com/diamond/index.html

meikl
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
intheCommented:
hi meikl,
i have the diamond access components from there but they dont work for me .
i was going to buy them last week if they worked for access2000 but
i get same error as Malensek.
"Unrecognized database format" ,if i convert the database to access97 they work great.
do you knwo how to make them work with access2000 .mdb ? theres points from me if you do :-)
Regards Barry
0
 
kretzschmarCommented:
hi barry,

well, i'm at home until 10.jan and have not the equipment here,
but as far as i know are there two versions from diamond access
one for dao 3.5 -> access 97 and lower
one for da0 3.6 -> access 2000

i've tested at work with the trial version,
where both versions are been included

it was terrible easy to connect to access 2000
with the version for dao 3.6

about to make a access2000 mdb,
i will take a look, when i'm back at work (10.Jan)

so long

meikl ;-)
0
 
intheCommented:
LoL

nevermind found it :-
there is property in object inspector
DaoDatabase1.DaoVersion just set it too Dao36 for access2000 or dao35 for 97. ;-)
 
0
 
MalensekAuthor Commented:
Inthe,
I cant use your 4th suggestion, but I would go for the first three. The problem is I dont think the first 2 are working. So I am wondering how to use ADO components in Delphi?
0
 
MalensekAuthor Commented:
Just to get clear when I try to use a Delphi native MSACCESS driver I ge an BDE 13059 error : General SQL error.
0
 
MalensekAuthor Commented:
Just to get clear when I try to use a Delphi native MSACCESS driver I ge an BDE 13059 error : General SQL error.
0
 
MalensekAuthor Commented:
thanx to U and meikl
0
All Courses

From novice to tech pro — start learning today.