Entwickler-Ecke
Datenbanken - MySQL Einträge in ListView anzeigen?
jackie05 - Sa 27.12.08 01:43
Titel: MySQL Einträge in ListView anzeigen?
Hallo,
ich lasse eine Verbindung zur MySQL Datenbank herstellen mit MySQL Direct, soweit funktioniert alles, jetzt möchte ich wissen, wie ich die Einträge in ListView anzeigen kann?
So kann ich die Einträge in StringGrid anzeigen:
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: 26: 27: 28: 29: 30: 31: 32:
| if assigned(FResult) then begin if FResult.ResultType=rtStored then begin cr := FResult.RecNo; StringGrid2.RowCount := FResult.RowsCount+1; StringGrid2.ColCount := FResult.FieldsCount+1; for i:=0 to FResult.FieldsCount-1 do begin af := FResult.FieldDef(i)^; StringGrid2.cells[i+1,0] := af.Name; end; FResult.First; for i:=0 to FResult.RowsCount-1 do begin if FResult.RecNo=cr then StringGrid2.Cells[0,i+1] := '*' else StringGrid2.Cells[0,i+1] := ''; for j:=0 to FResult.FieldsCount-1 do StringGrid2.Cells[j+1,i+1] := FResult.FieldValue(j); FResult.Next; end; FResult.RecNo := cr; end else begin StringGrid2.RowCount := 2; StringGrid2.ColCount := FResult.FieldsCount+1; for i:=0 to FResult.FieldsCount-1 do begin af := FResult.FieldDef(i)^; StringGrid2.cells[i+1,0] := af.Name; end; for j:=0 to FResult.FieldsCount-1 do StringGrid2.Cells[j+1,1] := FResult.FieldValue(j); end; end; |
Damit werden alle Einträge in StringGrid angezeigt.
Wie könnte ich es in ListView anzeigen lassen?
Ich hab mir das mal so Überlegt:
Delphi-Quelltext
1: 2: 3: 4: 5:
| ListIt := Liste2.Items.Add(); ListIt.Caption := ''; ListIt.SubItems.Add('Tabelle1'); ListIt.SubItems.Add('Tabelle2'); ListIt.SubItems.Add('Tabelle3'); |
Ist das irgendwie möglich?
Ich bedanke mich schonmal im Voraus.
MfG
jaenicke - Sa 27.12.08 02:16
Genau so geht es doch auch. :nixweiss:
Du musst ja nur zum Beispiel statt
jackie05 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2:
| for j:=0 to FResult.FieldsCount-1 do StringGrid2.Cells[j+1,i+1] := FResult.FieldValue(j); | |
schreiben
Delphi-Quelltext
1: 2: 3: 4:
| ListIt := Liste2.Items.Add(); ListIt.Caption := FResult.FieldValue(0); for j := 1 to FResult.FieldsCount-1 do ListIt.SubItems.Add(FResult.FieldValue(j)); |
Bei dem StringGrid greifst du auf alle Zellen als Array zu, bei der ListView fügst du stattdessen eine neue Zeile und die Spalten hinzu. Auf die Daten greifst du aber nach wie vor genauso zu.
jackie05 - Sa 27.12.08 03:30
Danke Dir.
Ich habe das mit MySQL Direct gelassen und stattdessen mit ZeosLib MySQL angefangen.
Jetzt habe ich ein Problem, ich möchte nicht gleich wegen ein kleiner Fehler einen neuen Thread eröffnen und zwar, möchte ich bei der SQL Abfrage einen Like einfügen:
Delphi-Quelltext
1: 2:
| Name := PChar(ComboBox1.Text); query := PChar('SELECT * FROM Tabelle WHERE (Name LIKE "%'+Name+'%")'); |
Wenn ich diese abfrage ausführe, sagt mir mein Programm, das die SQL Syntax falsch wäre.
Wieso funktioniert das nicht?
Edit: Ich habs jetzt so gemacht:
Delphi-Quelltext
1:
| query := PChar('SELECT * FROM Tabelle WHERE (Name LIKE "%'+Name+'%")'); |
nun funktioniert es und Danke für die antwort.
MfG
Delete - Sa 27.12.08 09:19
Du solltest Deine Abfragen parametrisieren, dann bist Du auch vor SQL-Injection geschützt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!