Mit ADO Komponenten auf Access zugreifen
-
Hallo,
ich arbeite mich gerade in die Datenbankprogrammierung ein und habe da
ziemlich Probleme mit den Komponenten. Das fängt schon damit an, daß ich nicjt weiß wie die Verbindung zustande kommt. Es heißt zwar immer ich muß einen Connectiostring erstellen, aber wie sieht der aus???? (ein beispiel wäre da nicht schlecht) Und welchen Treiber muß ich da verwenden???? Ich hätte ja in der Suchfunktion nachgeschaut, aber die funktioniert ja im Moment nicht.Danke schon mal
Ebi
-
Hi,
1. Gehe im Datanbankexplorer und leg ein Alias mit den Accesstreiber an. Wenn du dort auf die Tabels zugreifen kannst, ist das schon mal in Ordung.
Wenn du zum Datenbankexplorer noch fragen hast, melde dich noch mal. Den findest du übrigens auch im BCB unter Datenbank/Explorer
2. Leg ne TADOConnection an oder verwende den Connectionstring einer anderen Komponente, sofern diese sowas hat.
klicke auf (...) in der Eigenschaft. Gehe auf "Aufbauen " und auf "Provider". Wähle dort einen passenden Treiber. Ich glaub für dich kommt der ODBC- Treiber in Frage.3. kicke auf Weiter. Wenn du den ODBC-Treiber gewählt hast, wähle unter "DatenquellenNamen" deine erstellten oder vorhandene Alias mit dem Access-Treiber. Melde dich dort auh mit deinen Usernamen und Passwort an. Wenn du kein User angelegt hast, nicht weist, wie der UserName/Passwort heist so versuch mal "Administrator" ohne Passwort.
Das ist, so weit ich weiss, die Standardeistellung.4. Klicke auf Verbindung testn. Wenn alles gut geht , biste drin.
Ansonsten noch mal die Aliase anschauen und auf Fehler prüfen. Das geht am besten im Datenbakexplorer. Dort kannst du auch gleich die Verbindungsmöglichkeiten teste.
PS: Wen ein grüner Pfeil vor deinem Alias steht, kannst du diesen nicht mit der rechten Maustaste öffnen. Du musst dann diesen Alias erst speichern mit rechte Maustaste " speichern unter.."
Wenn du den Alias doppelklickst, erscheint ein gelber rand um den Alias im TreeView. Dann ist die Verbindung acktiv und du kannst die Tabels öffnen.Geht das nicht, ist noch ein Fehler in deinen Einstellungen drin. Diesen musst du dann noch beheben.
-
Sowas wie ein kurzes Tutorial zu ADO:
(keine Erklärungen, nur was man machen muss/kann)
-------------------------------------------------Machen wir's doch einfach wie NKOTB: Step by Step
Step 1: a) Einbinden der ADOConnection b) Hier die Eigenschaft ConnectionString ändern (...) c) Im Dialog "Verbindungs-String verwenden" auswählen und auf "Erstellen" klicken. d) Als Provider "Microsoft OLE DB Provider for ODBC Drivers. e) Bei Verbindung unter 1. "Verbindungszeichenfolge" auswählen und auf "Erstellen" klicken. f) Unter "Computerdatenquelle" Microsoft Access-Datenbank auswählenund mit "OK" bestätigen. g) Im Dialog "Anmeldung" auf Schaltfläche "Datenbank" klicken undPfad der .mdb Datenbank angeben. h) Schaltfläche "Verbindung testen" betätigen... wenn nicht erfolgreich -> ka i) rest ist/war für mich uninteressant Step 2: a) Einbinden der ADOQuery b) Als Connection die eben eingerichtete ADOConnection angeben c) Wenn Du das SQL in Source verändern willst, war's das... ansonsten unter SQL noch das Statement angeben. Step 3: a) Um SQL im Source zu verändern, machst du das so: ADOQuery1->Close(); //Muss zu sein ADOQuery1->SQL->Clear(); //Weisst du ja wohl ADOQuery1->SQL->Add("Select......."); //Das Statement halt mit "".Über ein weiteres Add kannst Du Zeilen hinz. b) Dein Statement ist fertsch... zum ausführen ADOQuery1->Open(); //Bei Updates und Inserts ist das wohl Exec()...hab aber noch nicht mit gearbeitet. c) Nachdem dein Statement ausgeführt wurde, zeigt der Pointer auf die erste Row aus der Ergebnismenge... ansonsten kannst du den Pointer über ADOQuery1->First();auf den Anfang zeigen lassen. d) Die einzelnen Columns sprichst Du so an: ADOQuery1->Fields->Fields[0]->AsString (Falls String... Gibt noch AsInteger, rest musst du nachlesen.) 0 ist dabei die erste Column
Solltest es jetzt hinbekommen...
Hmm, ich hoffe die Formatierung haut hin, sonst könnte ja ein Mod den Beitrag editieren!?
CU
Woody
[ Dieser Beitrag wurde am 18.06.2002 um 19:00 Uhr von Jansen editiert. ]
-
Herzlichen Dank für das Vertrauen!
Nächstes Mal aber bitte ruhig selbst die Code-Tags benutzen.
-
Hallo @all
Wunderbar, ein Thema gefunden.
Ebenfalls Access & ADO Connection drauf, Querys funktionieren, leider krieg ich beim Einbinden von ADOTables, (Connection und TableName gesetzt, Active=True) wenn ich das Projekt starten will folgende Meldung:
Im Projekt ist eine Exception der Klasse EVariant:TypeCastError aufgetreten. Meldung: "Variante des Typs (NULL) konnte nicht in Typ (String) konvertiert werden". Angehalten.
Wer kann damit was anfangen ???
Borland6 mit Update 1+2
thx