Board index » delphi » ADO Deployment Problem-Provider not found

ADO Deployment Problem-Provider not found

I'm nearing completion of a programming project but have run into troubles
deploying on new machines...

In my application I had to change ADO providers from Jet4.0 to Jet3.51 ...
This is because my application had to WRITE records to a pre-existing MDB
file which appears to have been developed in Jet3.51 ... I could use Jet 4.0
to read, but not write. I got an error which explained it could not write to
replica-table of a different version. Once I switched my provider to Jet
3.51, everything worked.

In order to install JET3.51 on my development machine, I installed microsoft
data access components SDK 2.0 (dasdksa.exe).

Now I need to deploy... I downloaded the jet351 merge module from
installshield and checked the JET3.51 merge module to bundle with my
application using installshield express for borland delphi.

But after successfully installing my application on another computer, I get
a "PROVIDER NOT FOUND" error when executing my program on the new machine.

QUESTION: Is it possible JET 3.51 is not installing because JET 4.0 already
exists on the new machine?

I'd prefer not to have to pre-install SDK2.0 on all my deployment
machines... I want to automate the installation as much as possible.

Any ideas or suggestion?

Thanks as always these newsgroups have proved invaluable...

--Rick

 

Re:ADO Deployment Problem-Provider not found


Quote
"Rick Gregory" <r...@daystartech.cc> wrote in message

news:3e5e471d$1@newsgroups.borland.com...

Quote
> I'm nearing completion of a programming project but have run into troubles
> deploying on new machines...

> In my application I had to change ADO providers from Jet4.0 to Jet3.51 ...
> This is because my application had to WRITE records to a pre-existing MDB
> file which appears to have been developed in Jet3.51 ... I could use Jet
4.0
> to read, but not write. I got an error which explained it could not write
to
> replica-table of a different version. Once I switched my provider to Jet
> 3.51, everything worked.

There's no inherent reason the Jet 4 provider can't write to a Jet 3.51 db.
That's what the "Jet OLEDB:Engine Type" property is for (5 = Jet 4.x, 4 =
Jet 3.x, 3 = Jet 2.0, 2 = Jet 1.1, 1 = Jet 1.0).  Did you try "Jet
OLEDB:Engine Type=4;" in your connection string?

Quote
> In order to install JET3.51 on my development machine, I installed
microsoft
> data access components SDK 2.0 (dasdksa.exe).

Ack!  That is truly horrible.

Quote
> QUESTION: Is it possible JET 3.51 is not installing because JET 4.0
already
> exists on the new machine?

Yes.

--

 A: Top-posters.
 Q: What is the most annoying thing on Usenet?

Re:ADO Deployment Problem-Provider not found


DRS,
Sounds great but I still get the error: "Operation not supported on
replicable databases that have not been converted to the current version".
And the error occurs during a call to POST. (ie.. qqtable.post which
connects to EXPAdoConnection1).

Here is my connection string:

EXPADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;'+
      'Data Source='+TheFilename+';Mode=Share Deny None;Extended
Properties="";'+
      'Persist Security Info=False;Jet OLEDB:System database="";Jet
OLEDB:Registry Path="";'+
      'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;Jet
OLEDB:Database Locking Mode=1;'+
      'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;'+
      'Jet OLEDB:New Database Password="";Jet OLEDB:Create System
Database=False;'+
      'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on
Compact=False;'+
      'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

This is my first (obviously) ADO project and I sure appreciate the help!
--Rick

Quote
"DRS" <d...@removethis.ihug.com.au> wrote in message

news:3e5e510a@newsgroups.borland.com...
Quote
> "Rick Gregory" <r...@daystartech.cc> wrote in message
> news:3e5e471d$1@newsgroups.borland.com...
> > I'm nearing completion of a programming project but have run into
troubles
> > deploying on new machines...

> > In my application I had to change ADO providers from Jet4.0 to Jet3.51
...
> > This is because my application had to WRITE records to a pre-existing
MDB
> > file which appears to have been developed in Jet3.51 ... I could use Jet
> 4.0
> > to read, but not write. I got an error which explained it could not
write
> to
> > replica-table of a different version. Once I switched my provider to Jet
> > 3.51, everything worked.

> There's no inherent reason the Jet 4 provider can't write to a Jet 3.51
db.
> That's what the "Jet OLEDB:Engine Type" property is for (5 = Jet 4.x, 4 =
> Jet 3.x, 3 = Jet 2.0, 2 = Jet 1.1, 1 = Jet 1.0).  Did you try "Jet
> OLEDB:Engine Type=4;" in your connection string?

> > In order to install JET3.51 on my development machine, I installed
> microsoft
> > data access components SDK 2.0 (dasdksa.exe).

> Ack!  That is truly horrible.

> > QUESTION: Is it possible JET 3.51 is not installing because JET 4.0
> already
> > exists on the new machine?

> Yes.

> --

>  A: Top-posters.
>  Q: What is the most annoying thing on Usenet?

Re:ADO Deployment Problem-Provider not found


Quote
"Rick Gregory" <r...@daystartech.cc> wrote in message

news:3e5e5b6f$1@newsgroups.borland.com...

I knew I heard of this one before.  See
http://support.microsoft.com/default.aspx?scid=kb;en-us;263101.  You're not
just writing to an Access 97 format, it's *replicated* and you must be
linking to it from an Access 2k format db, hence the error.  You'll need to
rethink your approach.  Why does it need to be replicated?  Can you just
open two different connections, one to the Jet 4 db and one to the Jet 3 db?

--

 A: Top-posters.
 Q: What is the most annoying thing on Usenet?

Re:ADO Deployment Problem-Provider not found


DRS,
I'm not linking between two databases. Consider this code fragment which I
just tested...

{Document OUT this original connectionstring statement for now while
testing....

EXPADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.3.51;'+
'Data Source='+TheFilename+';Mode=share deny none;Persist Security
Info=False'; }

EXPADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;'+
    'Data Source='+TheFilename+';Mode=Share Deny None;Extended
Properties="";'+
    'Persist Security Info=False;Jet OLEDB:System database="";Jet
OLEDB:Registry Path="";'+
    'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;Jet
OLEDB:Database Locking Mode=1;'+
    'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;'+
    'Jet OLEDB:New Database Password="";Jet OLEDB:Create System
Database=False;'+
    'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on
Compact=False;'+
    'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

EXPADOConnection1.Connected:=true;
EXPQQTable.Active:=true;
EXPQQTable.Insert;

{Test}
EXPQQTable['LNAME']:='test';
EXPQQTable.Post;

The POST method produces the error. Yet If I change the provider to Jet 3.51
(by removing the document {} from the first connectionstring statement above
and document out the second connectionstring statement)--> the error goes
away and the code works perfectly.

Now this application I've written accesses another product (a large
insurance co. application)... I'm not the creator of this MDB file but I
want to write records/data into it. It may be replicated but for what
purpose I do not know.

Any ideas?
--Rick

Re:ADO Deployment Problem-Provider not found


Quote
"Rick Gregory" <r...@daystartech.cc> wrote in message

news:3e5e68ff$1@newsgroups.borland.com...

[...]

Quote
> The POST method produces the error. Yet If I change the provider to Jet
3.51
> (by removing the document {} from the first connectionstring statement
above
> and document out the second connectionstring statement)--> the error goes
> away and the code works perfectly.

You're caught between a rock and a hard place.  If you must use Jet 3.51
because the target database is replicated try downloading Jet 3.5 SP3 from
http://download.microsoft.com/download/office97pro/sp/1/win98/EN-US/J...
.exe (read http://support.microsoft.com/default.aspx?scid=kb;en-us;172733
first).  Installing MDAC 2.0 is not a viable long-term option, especially
since current MS OSs won't let you install an old version over a new one.

See also http://support.microsoft.com/default.aspx?scid=kb;EN-US;240377 and
http://support.microsoft.com/default.aspx?scid=kb;en-us;245524 (HOWTO:
Ensure Jet 3.5 Is Installed Correctly parts 1 & 2).

If you get truly desperate consider using DAO instead of ADO.  It's
deprecated but it still works.
--

 A: Top-posters.
 Q: What is the most annoying thing on Usenet?

Re:ADO Deployment Problem-Provider not found


Agreed. And final thoughts...

I have deployed on 10 (7 Win9X and 3 WinXP) computers now successfully by
installing MDAC 2.0 in CUSTOM mode, only selecting the Microsoft Jet
Providers option.

I can't bundle it into my installshield package, MDAC 2.0 and my application
have to be installed seperately. But bottom line is I'm working with
outdated factors that are beyond my control. I consider this quite
successful given my limited experience with ADO and the foreign software I
have had to "link-to".

I am pleased with how my software is performing so far. And, if you lived in
the neighborhood I'd buy you a beer! Thanks again for your assistance!!!

--Rick

PS: Now how do I uninstall SDK 2.0???? :)

Other Threads