Board index » delphi » Need help connecting with an Access database

Need help connecting with an Access database

Here is my story.
I inherited an application which was developed in VB4.0 using a set of
Access databases, each containing a single table. Many customer problems
developed as we crossed into 2000, and so we updated them with a
somewhat revised version in VB6.0, but using the same access database
files. Still more problems, and, since I don't know VB, I thought I
would just rewrite it in Delphi 4 professional, then do a little data
conversion utility to move the data into dBase files and I would be down
to something I could at least chase when errors occur.
My data conversion utility runs fine on my system, converting a very
large set of Access files I borrowed from a customer. I had, at one
point, installed VB4 and VB6 on my system, and I also have Office 97
(with Access97) installed.

I sent my delphi data conversion utility to my customer, and he couldn't
even open the access files with it, getting the message Cannot load an
IDAPI service library. The message also identified MSJT3032.DLL as the
library in question.

I read some things in FAQs, suggesting that DAO 3.0 needs to be on the
machine with the application. But if the customer has installed the
related VB4 application and the related VB6 application wouldn't the jet
engine be installed already? Do I have to move some things around so
Delphi or the BDE can see the jet engine?

I tried rigging up a DAO 3.0 on another system here which had no other
jet engines installed, and my data conversion utility still won't open
the file, this time saying: General SQL error. Can't open a database
created with a previous version of your application. But then why can I
open it on my system? Why can the customer open it with his VB
application?

Help!

 

Re:Need help connecting with an Access database


Hi,
If you are using the Delphi native MSACCESS driver, there is no need for JET
to be installed on the target machine. You will of course have to install
the BDE, though. The problem is almost certainly that the BDE tends to
default to using IDA032.DLL which copes with Access 95 databases when the
other DLL: IDDA3532.DLL copes with Access 97 as well. To change this, run
the BDE administrator utility and look for the 'Configuration / Drivers /
Native / MSACCESS / DLL32 field' - it's a drop down list with two entries.

HTH

Andrew

Quote
Bill Burns wrote in message <390A01E6.1DBCB...@rpinet.com>...
>Here is my story.
>I inherited an application which was developed in VB4.0 using a set of
>Access databases, each containing a single table. Many customer problems
>developed as we crossed into 2000, and so we updated them with a
>somewhat revised version in VB6.0, but using the same access database
>files. <snip>
>My data conversion utility runs fine on my system, converting a very
>large set of Access files I borrowed from a customer. I had, at one
>point, installed VB4 and VB6 on my system, and I also have Office 97
>(with Access97) installed.

>I sent my delphi data conversion utility to my customer, and he couldn't
>even open the access files with it, getting the message Cannot load an
>IDAPI service library.
<snip>
>Help!

Re:Need help connecting with an Access database


Bogus !!!

The BDE MSACCESS driver uses DAO to access MS Jet, so you need to install
BDE, DAO and MS Jet to get it working !!!

...

Quote
> If you are using the Delphi native MSACCESS driver, there is no need for
JET
> to be installed on the target machine.

...

Re:Need help connecting with an Access database


The MSACCESS BDE driver can work with DAO 3.0 (included with MS Access 7 and
MS Office 95) and with DAO 3.5 (included with MS Access 97 and MS Office
97).

To switch between the two use:
BDE Administrator -> Configuration -> Drivers -> Native -> MSACCESS -> DLL32
set to IDDAO32.DLL for DAO 3.0 and to IDDA3532.DLL for DAO 3.5

"Bill Burns" <w...@rpinet.com> schreef in bericht
news:390A01E6.1DBCBCD3@rpinet.com...

Quote
> Here is my story.
> I inherited an application which was developed in VB4.0 using a set of
> Access databases, each containing a single table. Many customer problems
> developed as we crossed into 2000, and so we updated them with a
> somewhat revised version in VB6.0, but using the same access database
> files. Still more problems, and, since I don't know VB, I thought I
> would just rewrite it in Delphi 4 professional, then do a little data
> conversion utility to move the data into dBase files and I would be down
> to something I could at least chase when errors occur.
> My data conversion utility runs fine on my system, converting a very
> large set of Access files I borrowed from a customer. I had, at one
> point, installed VB4 and VB6 on my system, and I also have Office 97
> (with Access97) installed.

> I sent my delphi data conversion utility to my customer, and he couldn't
> even open the access files with it, getting the message Cannot load an
> IDAPI service library. The message also identified MSJT3032.DLL as the
> library in question.

> I read some things in FAQs, suggesting that DAO 3.0 needs to be on the
> machine with the application. But if the customer has installed the
> related VB4 application and the related VB6 application wouldn't the jet
> engine be installed already? Do I have to move some things around so
> Delphi or the BDE can see the jet engine?

> I tried rigging up a DAO 3.0 on another system here which had no other
> jet engines installed, and my data conversion utility still won't open
> the file, this time saying: General SQL error. Can't open a database
> created with a previous version of your application. But then why can I
> open it on my system? Why can the customer open it with his VB
> application?

> Help!

Re:Need help connecting with an Access database


Thanks for the help.

I also learned (from Delphi FAQ4279B.txt) that ODBC must be installed in order
to communicate between Delphi and Access.
Since my customer has DAO 3.5 he can simply install ODBC and then can set the
BDE to use DAO 3.5. What a lot to expect of a non-developer customer, however!

Is there a way to set or change the BDE's MSACCESS DLL32 value from a program?

Quote
"M.H. Avegaart" wrote:
> The MSACCESS BDE driver can work with DAO 3.0 (included with MS Access 7 and
> MS Office 95) and with DAO 3.5 (included with MS Access 97 and MS Office
> 97).

> To switch between the two use:
> BDE Administrator -> Configuration -> Drivers -> Native -> MSACCESS -> DLL32
> set to IDDAO32.DLL for DAO 3.0 and to IDDA3532.DLL for DAO 3.5

> "Bill Burns" <w...@rpinet.com> schreef in bericht
> news:390A01E6.1DBCBCD3@rpinet.com...
> > Here is my story.
> > I inherited an application which was developed in VB4.0 using a set of
> > Access databases, each containing a single table. Many customer problems
> > developed as we crossed into 2000, and so we updated them with a
> > somewhat revised version in VB6.0, but using the same access database
> > files. Still more problems, and, since I don't know VB, I thought I
> > would just rewrite it in Delphi 4 professional, then do a little data
> > conversion utility to move the data into dBase files and I would be down
> > to something I could at least chase when errors occur.
> > My data conversion utility runs fine on my system, converting a very
> > large set of Access files I borrowed from a customer. I had, at one
> > point, installed VB4 and VB6 on my system, and I also have Office 97
> > (with Access97) installed.

> > I sent my delphi data conversion utility to my customer, and he couldn't
> > even open the access files with it, getting the message Cannot load an
> > IDAPI service library. The message also identified MSJT3032.DLL as the
> > library in question.

> > I read some things in FAQs, suggesting that DAO 3.0 needs to be on the
> > machine with the application. But if the customer has installed the
> > related VB4 application and the related VB6 application wouldn't the jet
> > engine be installed already? Do I have to move some things around so
> > Delphi or the BDE can see the jet engine?

> > I tried rigging up a DAO 3.0 on another system here which had no other
> > jet engines installed, and my data conversion utility still won't open
> > the file, this time saying: General SQL error. Can't open a database
> > created with a previous version of your application. But then why can I
> > open it on my system? Why can the customer open it with his VB
> > application?

> > Help!

Re:Need help connecting with an Access database


Quote
Bill Burns <w...@rpinet.com> wrote:
>Thanks for the help.

>I also learned (from Delphi FAQ4279B.txt) that ODBC must be installed in order
>to communicate between Delphi and Access.

I'm sorry but can someone confirm this. I've heard that Access can work wit Delphi without ODBC. Actually, I could ask another question: What's the
difference betweent ODBC and Ms JET drivers for Access?
Smola
--
Slowly growing deaf.

Re:Need help connecting with an Access database


MS Jet: a set of files for accessing MS Access (and other) databases.
ODBC: a set of files for uniform access to any database that provides a ODBC
driver.

ODBC is often distributed by Microsoft in a package that also includes MS
Jet and a MS Jet ODBC drivers (it is almost impossible to install ODBC
without installing MS Jet).

So: The BDE MS ACCESS driver doesn't really need ODBC, it needs MS Jet. But,
the only good way to install MS Jet on a computer is to install the Data
Access package (from www.microsoft.com/data) that also includes ODBC.

"Smola" <asmol...@foi.hr> schreef in bericht
news:390e24e7.1821633@news.tel.hr...

Quote
> Bill Burns <w...@rpinet.com> wrote:

> >Thanks for the help.

> >I also learned (from Delphi FAQ4279B.txt) that ODBC must be installed in
order
> >to communicate between Delphi and Access.

> I'm sorry but can someone confirm this. I've heard that Access can work

wit Delphi without ODBC. Actually, I could ask another question: What's the
Quote
> difference betweent ODBC and Ms JET drivers for Access?
> Smola
> --
> Slowly growing deaf.

Other Threads