Autor |
Beitrag |
Chris Maslowski
      
Beiträge: 109
|
Verfasst: So 08.01.06 17:06
Hallo,
ich möchte den Inhalt einer Spalte einer Tabelle auslesen und in Variablen speicher. Die Tabelle heist beispielsweise test und die Spalte: spalte_2. In der Spalte sollen alle einträge ausgelesen werden und in Variablen gespeichert werden. Zum Beispiel wäre das der SQL Befehl:
SQL-Anweisung 1:
| SELECT spalte_2 FROM test |
Die Datenbank ist ja schon ausgewählt. Ich hab schon so viele Tutorials gelesen aber irgendwie nicht draus schlau geworden. Wäre echt gut wenn ihr mir dat beantworten könntet.
Schon mal Danke für die Hilfe!
|
|
Lex
Hält's aus hier
Beiträge: 5
|
Verfasst: So 08.01.06 18:23
Ich verstehe nicht genau was Du meinst.
Weise der Query die Abfrage zu, öffne die Query mit open und lies die Datensätze mit "fieldbyname" aus.
Für eine detailiertere Antwort müsstest Du noch genauer angeben, wo Du genau das Problem hast.
Lex
|
|
fränk0815
      
Beiträge: 22
Windows XP Prof. SP2
Delphi 2006 Prof. (Win32)
|
Verfasst: So 08.01.06 19:03
So zum Beispiel kannst du Datensätze in eine Stringlist einfügen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| if FSqlClient.connect then begin q := 'Select spalte_2 from test'; FSqlResult := FSqlClient.query(q,False,FExecuted);
if FSqlResult.RowsCount <= 0 then exit else begin FSqlResult.First; while not FSqlResult.EOF do begin SL.Add(FSqlResult.FieldValueByName('spalte_2',False)); FSqlResult.Next; end; FreeAndNil(FSqlResult); end; end; FSqlClient.close; FreeAndNil(FSqlClient); |
Ich hoffe damit ist dir geholfen.
|
|
Chris Maslowski 
      
Beiträge: 109
|
Verfasst: So 08.01.06 20:56
Lex hat folgendes geschrieben: | Ich verstehe nicht genau was Du meinst.
Weise der Query die Abfrage zu, öffne die Query mit open und lies die Datensätze mit "fieldbyname" aus.
Lex |
Ja genau das will ich. Nur ich bekomm das nicht hin. Ich hab zwar schon Tuts gelesen aber da steht das nur wie man dat in ein Stringgrid bekommt. Nur wie mach ich das genau? Könntest du den Code dafür schreiben? Ich glaub der is net so groß oder?
Vielleicht sollte ich auch sagen das ich Delphi 7 PE benutze und deswegen keine Datenbank unterstützung habe. Ich habe MySQL Direct importiert.
|
|
fränk0815
      
Beiträge: 22
Windows XP Prof. SP2
Delphi 2006 Prof. (Win32)
|
Verfasst: So 08.01.06 20:59
Hast du des Beispiel da oben nicht gesehen ?
Sollte eigentlich so funktionieren ... Odersteh ich jetzt total am Schlauch ?
|
|
Chris Maslowski 
      
Beiträge: 109
|
Verfasst: So 08.01.06 21:06
Da gibt es ein Problem beziehungsweise mehrere.
Zum Beispiel "FSqlResult" kennt der Compiler nicht. Kann es sein das du FMysqlResult meintest? Aber das hat auch net geklappt. Auch nicht FMysql.Result oder FMysql.Status. Vielleicht stehe ich ja auf'm Schlauch.
|
|
fränk0815
      
Beiträge: 22
Windows XP Prof. SP2
Delphi 2006 Prof. (Win32)
|
Verfasst: So 08.01.06 21:15
du musst in der Procedur wo du das ausführst zuerst einmal dafür sorgen das "er" weis was ein FSqlResult ist :
FSqlClient (TMysqlClient) muss natürlich zuvor erzeugt und initialisiert werden,
auch dei StringList oder die Variablen wo die Datensätze hinsollen sollten schon bestehen oder von dir in der Procedure erzeugt werden.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TForm1Click(Sender: Tobject); var FSqlResult : TMySqlResult; FExecuted : Boolean; begin if FSqlClient.connect then begin q := 'Select spalte_2 from test'; FSqlResult := FSqlClient.query(q,False,FExecuted);
if FSqlResult.RowsCount <= 0 then exit else begin FSqlResult.First; while not FSqlResult.EOF do begin SL.Add(FSqlResult.FieldValueByName('spalte_2',False)); FSqlResult.Next; end; FreeAndNil(FSqlResult); end; end; FSqlClient.close; FreeAndNil(FSqlClient); end; |
Ich denke jetzt solltest du klarkommen
|
|
Chris Maslowski 
      
Beiträge: 109
|
Verfasst: So 08.01.06 21:30
Jetzt klappt es auch sowei aber einen Fehler hab ich immer noch den ich net behoben bekomme. In Zeile 17 das
Delphi-Quelltext 1:
| SL.Add(FSqlResult.FieldValueByName('spalte_2',False)); |
Bereitet mir wieder Kopfzerbrechen. Das "SL" kennt der Compiler nicht? Hat das was mit dem Stringgrid zu tun?
|
|
Matthias-K
      
Beiträge: 271
Win95, Win98, Win2000, WinXP, Linux
D2, D4 Client/Server, D5 Enterprise, D6 Enterprise, D7 Enterprise, Delphi2005, C/C++ 3.0, C/C ++ 5.0, C/C++ 6.0
|
Verfasst: So 08.01.06 21:33
das wird die stringlist sein!
matthias
_________________ Ein Spezialist ist ein Mensch, der immer mehr von immer weniger weis, bis er alles von nichts weis!
|
|