Avatar billede jgc Nybegynder
23. januar 2000 - 18:36 Der er 15 kommentarer og
1 løsning

Access replikerings&ODBC fejl

Se lige foelgende fejlmeddelelse:
**********
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Operation not supported on replicable databases that have not been converted to the current version.

/admin/runsql.asp, line 29
*********
SQL-strengen er foelgende: update emails set navn='Birger' where email='xyz@abc.dk'.

Der er ikke noget problem med at hente data fra ODBC kilden. Det er tilsyneladende kun naar der skal skrives i tabellen at det gaar galt. Jeg har dobbelttjekket at der er skriverettigheder til biblioteket - saa hvad goer jeg galt????


Avatar billede jgc Nybegynder
23. januar 2000 - 23:16 #1
Jeg har nu fundet hjælp i Microsofts Knowledge Base - løsningen er at "nedgradere" MDAC til en version før 2.1 (2.0xXX?). MDAC 2.1 indeholder nemlig Jet 4.0, som ikke kan ændre i en replikeret Access97 base.
Knowledge base beskriver en løsning vha. Visual Basic - men hvad gør man når man ikke har VB??? Jeg ville gerne bare fjerne installationen, men det er nemmere sagt end gjort. Jeg har prøvet at installere MDAC 2 igen, men et tjek med et kontrolprogram viser at MDAC stadig er på 2.1. Jeg kan ikke finde nogle afinstallationsprocedurer - hvad gør jeg???
Avatar billede privaten Nybegynder
24. januar 2000 - 08:57 #2

Jeg mener godt man kan have begge versioner af MDAC installeret.
Så, installer ver. 2.0 og opret en ODBC forbindelse til din database og anvend denne istedet. Det betyder at det er jetengine v3.51 der kalder basen frem for v4.0
Avatar billede jgc Nybegynder
24. januar 2000 - 10:01 #3
Du må forklare lidt nærmere - hvordan fortæller jeg ODBC at den skal benytte Jet3.51 i stedet for Jet4?

Jeg downloadede en MDAC version tester, der kun viser én installeret MDAC version.
Avatar billede privaten Nybegynder
24. januar 2000 - 15:04 #4
Hvis du søger registry (søg på "jet") så kan du se om der fremkommer 2 forskellige versioner.
Det skulle give resultater ala:

1: Microsoft.Jet.OLEDB.4.0
2: Microsoft.Jet.OLEDB.3.51

Hvis du kan finde begge, ja så er de installeret ok, alternativt skal du installere 3.51
Avatar billede jgc Nybegynder
25. januar 2000 - 11:02 #5
Problemet bunder i, at ODBC-driverne til hhv. Access97 (Jet3.5x) og Access2K (Jet4) er én og samme fil - bare i to versioner. Filen hedder odbcjt32.dll. Jeg fandt en måde at komme delvist uden om dette: find en "gammel" odbcjt32.dll-fil, giv den et andet navn (fx. odbcjt32_35.dll) og læg den ved siden af den nye. I registry ((HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<dsn-navn>) kan man så finde referencen til filen (nøglen "driver") og ændre det til det nye navn (her altså odbcjt32_35.dll).

Det virker desværre kun for det ene af de to sites der har problemer - så jeg kan stadig bruge gode råd...
Avatar billede privaten Nybegynder
25. januar 2000 - 13:24 #6
First:

Hmmm, ved du om man kan initiere db-connection med et "property" set ala vc++?

Hvis, så ved jeg man med dette pr. def. kan pege direkte på den version af MDAC du vil bruge...

Second:

Jeg har tidligere haft lignende problemer med programmer skrevet til v3.51. Årsagen var at maskinerne var blevet pre-loadet med v4.0. For at løse problemet rullede vi bare MDAC2.0 på og vupti, ingen problemer længere. Så jeg kan ikke rigtig forstå at det skulle være en og samme fil? (med mindre version 4.0 ikke fungerer længere (det har jeg nemlig ved nærmere eftertanke ikke checket))


Avatar billede jgc Nybegynder
25. januar 2000 - 14:08 #7
ad1)

Ingen anelse

ad2)

Se evt. http://www.trigeminal.com/usenet/usenet019.html - punkt 6 vedr. ODBC.
Hvis du lægger MDAC 2.0 på vil jeg vædde på at Jet4/Access2000 applikationer ikke virker længere. Men bortset fra det vil jeg gerne vide hvordan du har installeret MDAC 2.0. Jeg prøvede at downloade en version fra Microsoft (der er 117 forskellige udgaver af version 2.0xxxx). Men installationen fik ikke noget til at virke (selvom der ikke kom nogle fejlmeddelelser).
Avatar billede privaten Nybegynder
25. januar 2000 - 15:01 #8
Hej igen,

Jeg er som sagt ikke 100% sikker, men det er dog et faktum at jeg har lagt begge versioner på samme maskine. Og jeg har mellem vores skriverier checket op på to af mine applikationer og disse anvender hver sin version af jet --> Microsoft.Jet.OLEDB.4.0 & Microsoft.Jet.OLEDB.3.51
Jeg har dog ikke leget med disse i relation til Access 2000.

Med hensyn til MDAC 2.0 rullede jeg den bare på, ingen spørgsmål stillet...

Hvis du er interesseret fremsender jeg den gerne
Avatar billede jgc Nybegynder
27. januar 2000 - 23:28 #9
Hvordan kalder du de to Jet-engines?
Avatar billede privaten Nybegynder
28. januar 2000 - 09:06 #10

db-sessionen/connection (i programmet) bliver initieret med enten Microsoft.Jet.OLEDB.4.0 eller Microsoft.Jet.OLEDB.3.51. Det var af den årsag jeg spurgte om du havde mulighed for at initiere via et property-set.

Det er en forbindelse til en db fra asp du vil have, ik'?
Avatar billede jgc Nybegynder
28. januar 2000 - 11:56 #11
Jo - præcis. Jeg har kodestumper der ser således ud:
**** uden DSN ****
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=D:\base\dmamusic\dma.mdb;DefaultDir=d:\base\dmamusic\;Driver={Microsoft Access Driver (*.mdb)}"
**** med DSN *****
set conn = server.createobject("ADODB.connection")

conn.open "dsn=dma"
*****

Jeg kan ikke finde ud af hvor jeg i ovenstående kan specificere 3.5 eller 4.0. Kan du ikke poste din connect-kode?
Avatar billede privaten Nybegynder
30. januar 2000 - 15:27 #12
Hej jgc,

Jeg har ingen ide om hvordan man gør det i ASP, men ved at du kan gøre det i andre sprog?!, men er det ikke noget med at du skal gøre det via odbc som vi "talte" om tidligere?!

Jeg har efterfølgende kigget lidt på min egen opsætning og jeg mener ikke der er tale om 2 ens filer:

Microsoft.Jet.OLEDB.4.0, peger på:
C:\WINNT\System32\msjetoledb40.dll

og

Microsoft.Jet.OLEDB.3.51, peger på:
C:\Program Files\Common Files\system\ole db\MSJTOR35.DLL

De 2 filer er ikke ens, ejheller samme størrelse. Hvis du under advanced options sætter driveren til at peger specifikt på den driver du ønsker at bruge til pågældende ODBC forbindelse, skulle den så ikke virke?!

(Jeg har sakset filnavn og paths fra registry'et)

Avatar billede jgc Nybegynder
31. januar 2000 - 14:15 #13
Hvis jeg går ind i ODBC-kontrolpanelet kan jeg under fanen "Drivere" se én "Microsoft Access Driver (*.mdb)" med versionsnummeret 4.00.3711.08. Og hvis jeg opretter et systemDSN kan jeg ligeledes kun vælge én Access-driver: den nyeste. Under "Avancerede indstillinger" kan jeg sætte en Driver-specifikation - men det svarer formentlig til den Driver-nøgle i registreringsdatabasen som jeg allerede har prøvet - uden held. Jeg har nu ikke set/prøvet MSJTOR35.DLL endnu.
Avatar billede privaten Nybegynder
31. januar 2000 - 16:55 #14

Driveren er navnet på det dll, der skal drive processen...
Avatar billede privaten Nybegynder
14. februar 2000 - 09:14 #15

Hvad skete der, fandt du en løsning eller gav du op?
Avatar billede jgc Nybegynder
11. april 2000 - 23:08 #16
Beklager den lange pause - må have glemt spørgsmålet. Løsningen - hvis man kan kalde det sådan - blev at opgradere til Acc2K - ganske smart for Microsoft...

Men det har til gengæld betydet den væsentlige forskel at vi nu kan replikere over internettet - det var ikke muligt før pga proxy.

Tak for hjælpen til privaten, men jeg kan altså ikke give point, da dine svar ikke bragte mig videre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester