Forums Neueste Beiträge
 

Zugriff auf eine Access 2007 DB

15/05/2009 - 19:59 von Stephan Stone | Report spam
Hallo zusammen,

Bin schon wieder über ein Problem gestolpert.

Hab jetzt eine Anwendung geschrieben die mir Daten von ASCII Files ausließt
und in eine Access 2007 DB schreibt.
Soweit funktioniert auch alles.

Jetzt wollte ich das ganze auf dem Zielrechner installieren und bekomm
Probleme.

Also mein Programmierrechner ist Vista x64, VS2008, Framework 3.5 und Access
2007

Der Zielrechner Win XP (bzw Win2k), Framework 2.0 und kein Access.

Das Framework hab ich schon auf 2.0 gestellt und abgeàndert.
Das Programm làuft auch Grundsàtzlich auf dem Zielrechner.
Leider geht der DB zugriff nicht.


OleDbConnection conDaten;
JetEngine objJetEngine = new JetEngine();
conString.DataSource = DBPfad;
conString.Provider = "Microsoft.ACE.OLEDB.12.0";
conDaten = new OleDbConnection(conString.ConnectionString);

cmdDB.Connection = conDaten;
conDaten.Open();

Dann schriebe ich die Daten

Am Ende noch komprimieren:

constrDB = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data
Source="
+ DBPfad + ";Jet OLEDB:Engine Type=5";
constrDBTemp = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data
Source="
+ DBPfadTemp + ";Jet OLEDB:Engine Type=5";
objJetEngine.CompactDatabase(constrDB, constrDBTemp);
File.Delete(DBPfad);
File.Move(DBPfadTemp, DBPfad);

Um das ganze Sinnvoll auf den Zielrechner zu bekommen hab ich ein Setup
Projekt erstellt.
Der hat auch die Abhàngigkeit zu Interop.ADODB.dll und Interop.JRO.dll
gefunden und die beiden dll
sind auch nach der Install im Programmverzeichnis.

Das Programm wirft mich aber beim ersten DB Zugriff Versuch raus.
Was mach ich falsch?
Oder ist es nicht möglich ohne Installiertem Access auf eine .accdb
zuzugreifen?

Danke

Stephan
 

Lesen sie die antworten

#1 Stephan Stone
15/05/2009 - 20:56 | Warnen spam
Kleine Frage noch am Rande.
Ich hab das ganze mit Try und Catch gekapselt, aber da ich die exception
nicht kenne hab ich ein generelles catch geschrieben und mir eine eigene Log
geschrieben.
Leider weis ich damit nur, dass ich beim open das problem hab, aber nicht
warum.
Gibts einen Weg den Exception Text zu bekommen?
Also ohne ihn beim Coden zu kennen.
Würde dann einfach die Meldung vom System ins Log schreiben. Das würde mir
denke ich auch mal weiterhelfen.

Danke

Stephan


"Stephan Stone" schrieb im Newsbeitrag
news:
Hallo zusammen,

Bin schon wieder über ein Problem gestolpert.

Hab jetzt eine Anwendung geschrieben die mir Daten von ASCII Files
ausließt und in eine Access 2007 DB schreibt.
Soweit funktioniert auch alles.

Jetzt wollte ich das ganze auf dem Zielrechner installieren und bekomm
Probleme.

Also mein Programmierrechner ist Vista x64, VS2008, Framework 3.5 und
Access 2007

Der Zielrechner Win XP (bzw Win2k), Framework 2.0 und kein Access.

Das Framework hab ich schon auf 2.0 gestellt und abgeàndert.
Das Programm làuft auch Grundsàtzlich auf dem Zielrechner.
Leider geht der DB zugriff nicht.


OleDbConnection conDaten;
JetEngine objJetEngine = new JetEngine();
conString.DataSource = DBPfad;
conString.Provider = "Microsoft.ACE.OLEDB.12.0";
conDaten = new OleDbConnection(conString.ConnectionString);

cmdDB.Connection = conDaten;
conDaten.Open();

Dann schriebe ich die Daten

Am Ende noch komprimieren:

constrDB = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data
Source="
+ DBPfad + ";Jet OLEDB:Engine Type=5";
constrDBTemp = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data
Source="
+ DBPfadTemp + ";Jet OLEDB:Engine Type=5";
objJetEngine.CompactDatabase(constrDB, constrDBTemp);
File.Delete(DBPfad);
File.Move(DBPfadTemp, DBPfad);

Um das ganze Sinnvoll auf den Zielrechner zu bekommen hab ich ein Setup
Projekt erstellt.
Der hat auch die Abhàngigkeit zu Interop.ADODB.dll und Interop.JRO.dll
gefunden und die beiden dll
sind auch nach der Install im Programmverzeichnis.

Das Programm wirft mich aber beim ersten DB Zugriff Versuch raus.
Was mach ich falsch?
Oder ist es nicht möglich ohne Installiertem Access auf eine .accdb
zuzugreifen?

Danke

Stephan

Ähnliche fragen