Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Installierbares ISAM nicht gefunden

  Alt 25. Apr 2008, 09:08
Moin Moony,

vorneweg: Ein ADO ConnectionString besteht aus vom OLEDB Provider definierten name-value pairs, die durch ein Semikolon voneinander getrennt werden. Du kannst jeden Eintrag (name) mehrmals vorsehen, der jeweils letzte Eintrag überschreibt quasi alle anderen. Beim Connect wird der ConnectionString ausgewertet, normiert und vervollständigt. Danach kann er ganz anders aussehen als vorher.

Es ist nicht notwendig, dass du Einträge aus dem ConnectionString löschst um sie hinterher wieder einzufügen. Du kannst Einträge einfach hinten ansetzen, auch wenn sie bereits im String vorkommen.

Microsoft hat die Datenverknüpfung (Universal Data Link - UDL) als ADO Konfigurationsmöglichkeit geschaffen. So kannst du einen ConnectionString als Template hinterlegen und nur die anwendungsspezifischen Parameter ergänzen - siehe Beitrag #8.

Sobald du einen Parameternamen falsch schreibst, meldet der Jet OLEDB Provider den unsäglichen Fehler, den du beobachtet hast. In deinem Fall dürfte der Fehler gemeldet werden, weil du die Password-Parameter falsch behandelt hast. Dadurch entstehen undefinierte Parameterbezeichner. Also entweder richtig oder gar nicht:

Zitat von Moony:
So sieht er aus nachdem alle Benutzerrelevanten Daten eingespflegt wurden:

'Provider=Microsoft.Jet.OLEDB.4.0'
+ ';User ID=Admin'
+ ';Data Source=C:\Programme\MeinProgram\Projects\Demo\Demo .mdb'
+ ';Mode=Share Deny None'
+ ';Extended Properties=""'
+ ';Jet OLEDB:System database=""'
+ ';Jet OLEDB:Registry Path=""'
// + ';Jet OLEDB:Database "' // weg damit oder: ';Jet OLEDB:Database Password=""'
+ ';Jet OLEDB:Engine Type=5'
+ ';Jet OLEDB:Database Locking Mode=1'
+ ';Jet OLEDB:Global Partial Bulk Ops=2'
+ ';Jet OLEDB:Global Bulk Transactions=1'
// + ';Jet OLEDB:New Database "' // weg damit oder: ';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'
;
Alles klar?

Wenn du keine UDL-Datei verwenden möchtest, dann vielleicht eine StringList (Delimiter := ';' QuoteChar := #0), deren Eigenschaften Values zum Setzen und Auslesen und DelimitedText als ConnectionString.

Freundliche Grüße
  Mit Zitat antworten Zitat