Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Komponente und lesen aus *.mdb (https://www.delphipraxis.net/135740-ado-komponente-und-lesen-aus-%2A-mdb.html)

Delphi_Atze 16. Jun 2009 22:24

Datenbank: *.mdb • Zugriff über: TADOConnection

ADO Komponente und lesen aus *.mdb
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

stehe vor einem weiteren Projekt. Ich habe eine Datenbank in der form "datenbank.mdb"
Ich habe es geschafft eine Verbindung herzustellen mit "TADOConnection"
Habe dazu das Tutorial von db benutzt. Habe es auch geschafft das ganze mit Hilfe von "TDataSource" und "TADOTable" und dann in einem "TDBGrid" anzuzeigen. Nach weiterm Recharchieren habei ch dann rausbekomen, dass man das TDBGrid nur zum ansehen der Datensätze benutzt, aber nicht zum editieren. Da soll wohl die TADOTable reichen.

Jetzt mein Problem:
in der Datenbank befinden sich 2 Spalten ("UID" und "name") mit 14 Reihen (siehe Anhang). Ich möchte jetzt die Anzahl der Reihen in der UID ermittel und als array , mit for2do schleife, speichern (z.b uid[i]:= ...). Delphi Hilfe war mir keine Hilfe, da steht hauptsächlich für was ich die TADOTable und co verwende und damit kam ich noch nicht so recht klar. Habe mehr info dann im Netz gefunden, bis auf diese, die ich jetzt brauche. Nebenbei wäre es vielleicht auch gut zu wissen, wie man Datensätze in diese Tabelle schreibt. Muss man das über ADOQuery machen?

Ich bitte um Hilfe.
Vielen Dank

sx2008 17. Jun 2009 01:37

Re: ADO Komponente und lesen aus *.mdb
 
Delphi-Quellcode:
i := 0;
ADOTable1.First; // auf 1. Datensatz
while not ADOTable1.Eof do
begin
   uid[i]:= ADOTable1.FieldByName('uid').AsString;
   name[i]:=ADOTable1.FieldByName('name').AsString;
   Inc(i);
   ADOTable1.Next; // nächster Datensatz
end;
Hinweise:
die Anzahl der Datensätze kann man im Property RecordCount auslesen. (dieser Wert muss aber nicht immer korrekt gefüllt sein)
Man sollte aber immer wie oben gezeigt eine While-Schleife benützen und nicht eine For-Schleife.

mkinzler 17. Jun 2009 06:32

Re: ADO Komponente und lesen aus *.mdb
 
Die Frage ist nur, zu was brauchst du die Werte in einem Array?

Delphi_Atze 17. Jun 2009 15:31

Re: ADO Komponente und lesen aus *.mdb
 
ich habe in dieser Datenbank 4 kleine Datenbanken (weiß nicht direkt wie man das bezeichnet). Jedenfalls ist in der ersten Datenbank 2 Spalten der Form NummerX und NameX in der 2. Datenbank steht NummerX NameY. Jetzt muss ich NameX und NameY ins verhältnis stellen. Deshalb wollte ich das über arrays lösen.

Wie kann ich einzellne Zeilen ansteuern?

danken für eure schnell Hilfe :)

sx2008 17. Jun 2009 23:54

Re: ADO Komponente und lesen aus *.mdb
 
Zitat:

Zitat von Delphi_Atze
...4 kleine Datenbanken (weiß nicht direkt wie man das bezeichnet).

Das sind Tabellen

Zitat:

Zitat von Delphi_Atze
Jedenfalls ist in der ersten Datenbank 2 Spalten der Form NummerX und NameX in der 2. Datenbank steht NummerX NameY. Jetzt muss ich NameX und NameY ins verhältnis stellen.

So etwas lässt sich leicht über SQL lösen.
Delphi-Quellcode:
ADOQuery1.SQL.Text := 'SELECT Tabelle1.NameX, Tabelle2.NameY FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.NummerX=Tabelle2.NummerX';
ADOQuery1.Open;
http://www.sqltutorial.de/

Delphi_Atze 18. Jun 2009 14:42

Re: ADO Komponente und lesen aus *.mdb
 
geht da auch, wenn die datensätze ungeordnet sind in beiden Tabellen? BZW kann ich dies auch als while schleife einbinden?

mkinzler 18. Jun 2009 14:50

Re: ADO Komponente und lesen aus *.mdb
 
Zitat:

geht da auch, wenn die datensätze ungeordnet sind in beiden Tabellen?
Ja
Zitat:

BZW kann ich dies auch als while schleife einbinden?
:gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 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