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?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
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
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

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
intheCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
MalensekAuthor Commented:
thanx to U and meikl
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.