Autor Beitrag
DelphiNoob
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Di 25.03.03 18:32 
Hi,

ich arbeite mit MySQL und den neuen Zeos Library 6.0.5.
Ich möchte eine komplette Tabelle meiner Datenbank auslesen, ist soweit auch kein Problem, nur die weitere verarbeitung macht mir Probleme.

Die Tabelle ist ungefährt so aufgebaut:

ausblenden Quelltext
1:
2:
3:
4:
        |  id  |  programm   |   path   | 
Zeile 1 |  1   |     Word    |   c:\XY  |
Zeile 2 |  2   |     Excel   |   c:\DA  |
Zeile 3 |  3   |     Editor  |  c:\AB   |


Wenn ich jetzt mittels 'select * from programme' alles auslese, weiß ich aber nicht genau wie ich alles weiter verarbeiten soll.

Aufgrund der Daten die ich auslese lege ich ListItems an. Die Caption des ListItem resultiert aus den unter Programm angegebenen Daten. Der Pfad des Programms wird in das "Data"-Feld des Listitems eingetragen.

Was ich nun möchte ist für alle in der Tabelle befindlichen Daten ein ListItem anlegen. Laut obigen Beispiel wären es in dem Fall 3 stück. Eines heisst "Word", das andere "Excel" usw usw usw.

Wenn ich wie oben angegeben alles auslese, kann ich auch "Zeile 1" problemlos bearbeiten, nur was ist mit dem Rest? Im Beispiel sind es nur 3, aber in wirklichkeit habe ich da schon mehrere Einträge. Leider komm ich auch nicht drauf wie ich das mit einer Schleife lösen könnte, weil ja nichts gezählt wird. Gut, durch die "id" wäre das zwar möglich, aber die sind nicht immer lückenlos. Die Reihenfolge kann genauso gut "1, 23, 32, 56, 57, 58, 212" sein.

Versteht ihr mein Problem? Hoffe auf Hilfe von euch Profis :)

Mfg
DelphiNoob
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Di 25.03.03 18:51 
hi,
ich kann dir nur nen Tip geben, wie es bei ADO funktioniert.
dort gibts ja auch ne Kompo StoredProc. Diese Liefert bei mehreren Datensätzen einen _RecordSet zurück, den man an eine Tabelle via MyTable.RecordSet:= MyStoredProc.Execute zuweisen muß,damit man die Ergebnisse weiterverabeiten kann.

Vieleicht hilft dir der Ansatz.
grez
MSCH
DelphiNoob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Di 25.03.03 18:55 
Jein. Wäre mir nicht bekannt das die Zeos Library sowas hat. ABER: Wäre es nicht vom denken her am nächsten ne' Stringlist zu nehmen? Wo ich alles reinpacke? Bzw Stringgrid?

Ist jetzt nur ne idee, aber es wäre nett wenn jemand was dazu sagt der mal was mit Stringlist/grid gemacht hat.

Mfg
DelphiNoob
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mi 26.03.03 10:49 
:?

Du willst also, praktisch wie in einer Tabelle, nur nicht so ausführlich, den Inhalt deines Feldes "programm" auflisten? Hab ich das jetzt richtig verstanden?

Also unter- oder nebeneinander Word, Excel und Editor. Richtig?
DelphiNoob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Mi 26.03.03 13:38 
Nein, ich will einfach den gesamten Inhalt einer Tabelle auslesen und Zeilenweise weiterverarbeiten!
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mi 26.03.03 15:49 
Ich glaub so ganz versteh ich dich nicht... kann also sein das das der falsche Tip ist:

DBCtrlGrid ?

Du kannst das DBCtrlGrid, sprich den darzustellenden Inhalt, horizontal oder vertikal Anordnen. Du bist nicht, wie bei Tabellen, an vorgegebene Formen gebunden, sondern kannst alles, was mit deiner DB zu tun hat, bzw. darauf zugreift, so plazieren, wie du es willst... etc. pp.

Meinst du das?

mfg
DelphiNoob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Mi 26.03.03 15:54 
Nein. Aber das Beispiel ist nicht schlecht.

Ich lese nun die Komplette Tabelle aus, und schreibe sie in ein TDBGrid (DBGrid). Alles kein Problem, nur wie lese ich jetzt per Schleife Zeilenweise (Wie in einem Buch) dieses Grid aus? Und gehe dann automatisch eine Zeile tiefer, lese dann diese aus, usw usw usw.

Und wenn ich in der letzten Zeile bin, und danach keine mehr kommt stoppt die Schleife dann. Wenn man mir da mal nen tipp gibt wäre ich dankbar. Weil zu diesen schei** DBGrid's findet man auch niergendwo erklärungen.
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mi 26.03.03 20:35 
sorry, das übersteigt dann meine Kompetenzen ;)

Versuch´s mal nach der Methode:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
query.first

repeat

myarray[i] := edit1.Text
Query.Next;
Inc(i, 1);

until query.EOF;
DelphiNoob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 152

Win 2003 Server
D7 Ent
BeitragVerfasst: Mi 26.03.03 20:40 
Danke, war ein Denkanstoß! habs wie folgt gelöst:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
...

for i:=0 to query.RecordCount-1 do begin
id := query.FieldByName('id').AsString;
programm := query.FieldByName('programm').AsString;
pfad := query.FieldByName('pfad').AsString;

SHGetFileInfo(pchar(pfad),0,FileInfo,gr,SHGFI_ICON);
listitem := lv.Items.Add;
listitem.caption := programm;
Icon.handle:=FileInfo.hIcon;
listitem.Imageindex:=Images.addIcon(Icon);

query.Next;
end;

...
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Mi 26.03.03 23:19 
schick, sieht gut aus.

anmerkung: ich würd für die VAR´s nicht GENAU die gleichen bezeichnungen nehmen, nenn sie fProgramm, oder _programm oder so. ich bin irgendwann durcheinander gekommen, weil ich´s genauso gemacht hab... is aber egal, wollt ich nur ma angemerkt haben.
mfg