Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi "Einfacher" Zugriff auf Access DB (https://www.delphipraxis.net/91754-einfacher-zugriff-auf-access-db.html)

ImpCaligula 9. Mai 2007 11:49

Datenbank: Access • Version: 2ßß3 • Zugriff über: ?

"Einfacher" Zugriff auf Access DB
 
Salü....

ich suche verzweifelt nach einem einfachen Code Bsp um auf eine Access DB zu zugreifen.
Das Code Bsp sololte enthalten.

- Zugriff auf die Access DB
- Zugriff auf eine bestimmte Tabelle
- Zugriff auf Datensatz 2
- Auslesen Tabelle X, Spalte "Name", Zeile 2
- Datensatz ändern Tabelle X, Spalte "Name", Zeile 2
- DB schließen

Und das am besten "Handisch" - also ohne irgendwelche Controlls, wenn das denn geht. Im I-Net habe
ich einige Bsp gefunden, werde daraus aber absolut nicht schlau, trotz Ausprobieren.

mkinzler 9. Mai 2007 11:58

Re: "Einfacher" Zugriff auf Access DB
 
http://www.dsdt.info/tutorials/ado/

oldmax 9. Mai 2007 12:15

Re: "Einfacher" Zugriff auf Access DB
 
Hi
Ich weiß nicht, ob du die Datenbankmodule und Objecte z.B.TQuery etc. hast. Wenn ja, ist's einfach.Unter Datei Neu holst du dir ein Datenmodul und setzt eine Query und ein UpdateSQL hinein. Üer den Menüpunkt Datenbank-> Explorer gehst du auf Object-> neu und generiers einen Datenbank treiber "Microsoft Access". Darin gibst du die Access-Datenbank an und speicherst zum Schluß diesen Treiber ab.
Nun kannst du diesen Treiber der Query zuweisen. Um eine Tabelle auszuwählen kannst du nun mit der rechten Maustast in die Query gehen und den SQL-Builder auswählen. Anschließend die gewünschte Tabelle aussuchen und alle Felder anwählen (*) und fertig.
Nun noch den Parameter auf CachedUpdates auf true und in Updateobject das UpdateSQL-Object eintragen.
Im UpdateSQL -Object nun auch mit rechter Maustaste den UpdateSQL-Editor aufrufen,, die Tabelle auswählen, das Indexfeld markieren und anschließend die SQL erzeugen. Danach sollte dem Zugriff auf Access-Tabellen nix mehr im Weg stehen.
Gruß oldmax

Asparius 9. Mai 2007 18:30

Re: "Einfacher" Zugriff auf Access DB
 
Hallo , ich habe das gleiche Problem
ich habe alles so gemacht und dann kommt
aber immer die Abfrage nach DATENBANK Loggin
ich verwende access 2003, habe die Datenbank
dort selbst erstellt und kein Passwort
oder ähnl. vergeben.
Weiss jemand, woran das liegen kann

shmia 9. Mai 2007 18:49

Re: "Einfacher" Zugriff auf Access DB
 
Zitat:

Zitat von Asparius
... und dann kommt aber immer die Abfrage nach DATENBANK Loggin

Delphi-Quellcode:
ADOConnection1.LoginPrompt := False;
das ist einfach, oder ?

ImpCaligula 10. Mai 2007 10:13

Re: "Einfacher" Zugriff auf Access DB
 
Zitat:

Zitat von mkinzler
http://www.dsdt.info/tutorials/ado/

Ja kenne ich, Danke. Die Verbindung hat auch so funktioniert!
----

Also, ich bin jetzt auf folgendem Stand. Ich habe ein Form mit 2 Buttons. Hier kann ich
den Connect zur DB machen und den Disconnect. Klappt wunderbar. Ich bin mit der DB verbunden.
Und zwar über eine zweite Unit - ich habe über Datei / Neu / weitere ein DataModule eingebunden.
Dann habe ich auf das DataModule ein ADOConnection Control gezogen und damit die Verbinbung zur
Access DB gemacht. Dann habe ich das DataModule(Unit2) in meine Unit1 eingebunden.

Wie gesagt, klappt hervorragend!

So und nun stocke ich, obwohl ich schon alles ausprobiert habe. Und hier wäre eine Hilfe Eurer seits
echt super - wie gesagt, habe alles ausprobiert :-)

Die Verbindung zur DB steht also.

Ich habe nun vor, mir 3 Textfelder (Edit) auf mein Form zu ziehen. Dazu gibt es ja extra im Register
DataControlls das DBEdit Control. So - aber nun muss ich dieses DBEdit ja irgendwie mit der ADOConnection
in Verbidnung bekommen.

So aus der .Net Welt kenne ich da so Controlls wie das DataSet, DataSource, DataTable usw. Aber ich bekomme
einfach keine schlüssige Verbindung hin. Meine Frage daher - wie lautet die Verbindungskette von ADOConnection
bis zum DBEdit?

ADOConnections -------------------> DBEdit ..... was fehlt dazwischen.
ADOConnections -------------------> DBNavigator ..... was muss hier dazwischen.


Danke für Eure Hilfe.

Udontknow 10. Mai 2007 10:30

Re: "Einfacher" Zugriff auf Access DB
 
Hallo!

Hier die Übersicht:

AdoConnection -> AdoQuery/AdoTable -> Datasource -> Steuerelemente wie TDBGrid/TDBedit etc..

Cu,
Udontknow

ImpCaligula 10. Mai 2007 10:43

Re: "Einfacher" Zugriff auf Access DB
 
Zitat:

Zitat von Udontknow
Hallo!

Hier die Übersicht:

AdoConnection -> AdoQuery/AdoTable -> Datasource -> Steuerelemente wie TDBGrid/TDBedit etc..

Cu,
Udontknow

Ah, das nenne ich Service! Super, dann probiere ich das gleich mal aus.
Dann ist das auch die Reihenfolge aller anderen DB wahrscheinlich..... SQL etc.

Dann lege ich gleich mal los und berichte!

ImpCaligula 10. Mai 2007 11:11

Re: "Einfacher" Zugriff auf Access DB
 
Ok.... es geht nicht. ist meiner Ansicht auch logisch, weil meiner Logik nach noch etwas fehlt!
Also, ich habe folgendes gemacht.

1. ADOConnection genommen, auf das Form gezogen und die Verbindung zur Access DB hergestellt.
Dazu habe ich den Jet Treiber genommen (4.0) zu einer Access 2003 DB im Access 2000 Format. Die
DB habe ich herausgesucht (Pfad) und die Verbindung getestet. Steht!

2. Dann habe ich die ADOTable genommen, aufs Form gezogen und unter "CONNECTION" die o.g. Quelle
ADOConnection ausgewählt.

3. Dann habe ich das DataSet genommen, aufs Form gezogen und bei Connection wiederum die ADOTable
genommen.

4. Nun habe ich das Grid genommen und habe als Quelle wiederum bei Connection das DataSet genommen.
Und siehe da - keine Daten :-(

Scheint mir aber logisch - die DB habe ich, aber wo suche ich heraus, welche Tabelle aus meiner Access
DB genommen werden kann???

http://img518.imageshack.us/img518/2487/databasezu5.jpg

Udontknow 10. Mai 2007 11:18

Re: "Einfacher" Zugriff auf Access DB
 
Bei der AdoTable-Komponente gibt es die Eigenschaft TableName. Mit Dataset meintest du wohl Datasource, ja?

Nicht das Aktivieren der AdoTable vergessen...

Cu,
Udontknow

ImpCaligula 10. Mai 2007 11:19

Re: "Einfacher" Zugriff auf Access DB
 
Gefunden! Oder.....? Ich muss bei der DataSource die Tabelle der DB aussuchen!
Und zwar unter dem Eigenschaftenpunkt "TableName" kann ich die Tabelle der DB
aussuchen. Denke ich mir.

Aber! Sobald ich das mache, kann ich das Programm nicht mehr starten :-(

http://img207.imageshack.us/img207/7...meldungjw4.jpg


Wieso dass denn auf einmal??????

Udontknow 10. Mai 2007 11:24

Re: "Einfacher" Zugriff auf Access DB
 
Hmmm, das hat, glaube ich, nichts mit Acess oder so zu tun. Speichere alles, und schliesse das gesamte Projekt mal. Neu öffnen und noch einmal probieren. Habe ich bei BDS 2006 manchmal auch, ist nur sporadisch.

Cu,
Udontknow

ImpCaligula 10. Mai 2007 11:26

Re: "Einfacher" Zugriff auf Access DB
 
Zitat:

Zitat von Udontknow
Bei der AdoTable-Komponente gibt es die Eigenschaft TableName. Mit Dataset meintest du wohl Datasource, ja?

Nicht das Aktivieren der AdoTable vergessen...

Cu,
Udontknow

Ah - ich habe den Tabellenname bei ADOTable eingeben müssen - UND - ich musste, wie Du sagtest, die ADOTable AKTIVIEREN!
mensch, dass muss man ja mal wissen! Die ADOTable aktivieren! Jösses :-)

So, es geht! Dank u.a. auch Deiner tatkräftigen Hilfe! Danke.... jetzt werde ich den DBNavigator noch ausprobieren. Frage vorab.
Wenn ich jetzt Daten ändere - werden die auch in der Access DB SYNCHRON geändert - oder brauch ich einen Update Befehl (wie in .Net)?

Udontknow 10. Mai 2007 11:28

Re: "Einfacher" Zugriff auf Access DB
 
Da fragst du mich jetzt was, ich arbeite normalerweise nur mit Clientdatasets bzw. Simpledatasets. Schau mal in die OH, da ist´s doch bestimmt schnell zu finden...

ImpCaligula 10. Mai 2007 11:32

Re: "Einfacher" Zugriff auf Access DB
 
Zitat:

Zitat von Udontknow
Da fragst du mich jetzt was, ich arbeite normalerweise nur mit Clientdatasets bzw. Simpledatasets. Schau mal in die OH, da ist´s doch bestimmt schnell zu finden...

Also beim BDNavigator gibt es einen Bestätigungsbutton - den muss ich drücken. Nur alleine die Eingabe
bewirkt da nichts. Es muss also ein Update Befehl geben. Wenn das jemand anders weiß, super!

Ansonsten ich geh mal natürlich auf die Suche.

Und an Dich nochmals mein Dank - jetzt geht das suuuper! Alles funktioniert. Muss man aber erst mal
drauf kommen noch mit dem ADOTable aktivieren *g*. Danke Dir!

Eine Frage noch - was ist denn der Unterschied zwischen der ADOTable und der ADOQuery - Abfrage?

Udontknow 10. Mai 2007 11:49

Re: "Einfacher" Zugriff auf Access DB
 
Was du mit dem "Bestätigen"-Button machst, ist wohl die Post-Operation (Methode vom Dataset), die die Änderungen eines Datensatzes dann an die DB weiterreicht.
Bei manchen Datasets reicht das aber für ein Update in der DB noch nicht, bei Clientdatasets muss/kann man z.B. nach Bearbeitung von 50 verschiedenen Datensätzen ApplyUpdates aufrufen, die Änderungen der 50 Records werden dann, und erst dann, in die Datenbank geschrieben.

Cu,
Udontknow


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz