Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADODataSet in ein STringgrid einfügen? (https://www.delphipraxis.net/56912-adodataset-ein-stringgrid-einfuegen.html)

dragi 13. Nov 2005 11:56

Datenbank: access • Version: 2003 • Zugriff über: dbgo

ADODataSet in ein STringgrid einfügen?
 
Hallo,

ich habe nach dem Auslesen einer TAbelle ein gefülltes ADODataSet. Jetzt möchte ich die Daten wieder in einem StringGrid visualisieren.

Delphi-Quellcode:
procedure TForm2.FillGrid(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ADODataSet1.RecordCount do
  begin
    StringGrid1.Cells[i,0] := ADODataSet1.FieldByName('Name').AsString;
    StringGrid1.Cells[i,1] := ADODataSet1.FieldByName('Strasse').AsString;
  end;
end;
Aber wie kann ich denn jetzt zum nächsten Datensatz im DataSet springen? Gibt es nciht so etwas wie ADODataSet.Fields[i].FieldByName('Name').asstring? Dann könnte ich das DataSet mit meiner Zählvariable steuern. Wie macht man sowas richtig?

Vielen Dank

Dragi

[edit=sakura] [code]->[delphi] Mfg, sakura[/edit]

marabu 13. Nov 2005 13:27

Re: ADODataSet in ein STringgrid einfügen?
 
Hallo Dragi,

du kannst über die Eigenschaft RecNo den aktuellen Datensatz wählen. Ich habe im Code deine Zellenadressierung geändert, so dass die Felder eines Satzes in den Spalten einer Zeile angezeigt werden - bei dir wurden die Felder eines Satzes untereinander geschrieben. Bei der Zeilenadressierung habe ich Titelzeilen im StringGrid berücksichtigt.

Generell solltest du dir eine Namenskonvention für deine Komponenten und Variablen auferlegen. Die von der IDE vorgegebene Konvention - Klassenname mit angehängtem Zähler, aber ohne T - ist zu abstrakt.

Delphi-Quellcode:
procedure TForm2.FillGrid(Sender: TObject);
var
  i, iRow: integer;
begin
  iRow := StringGrid1.FixedRows;
  with ADODataSet1 do
    for i := 1 to RecordCount do
    begin
      RecNo := i;
      StringGrid1.Cells[0, iRow] := FieldByName('Name').AsString;
      StringGrid1.Cells[1, iRow] := FieldByName('Strasse').AsString;
      Inc(iRow);
    end;
end;
Kennst du schon Delphi-Referenz durchsuchenTDBGrid und Delphi-Referenz durchsuchenTListView?

Grüße vom marabu


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