Thema: Delphi zeos stringgrid anzeige

Einzelnen Beitrag anzeigen

bl3nder

Registriert seit: 18. Aug 2006
89 Beiträge
 
#1

zeos stringgrid anzeige

  Alt 31. Aug 2006, 08:56
Datenbank: mysql • Version: 5.x • Zugriff über: zconnection
hi
Da ich ohne Zeos wohl nicht auskommen werde, versuch ich nun meine Daten ueber Zeos anzeigen zu lassen.
Hab ein Testprojekt angelegt mit folgendem Code, bei dem ich eine "Zugrifssverletzung" an irgendeiner Adresse bekomme. Wo ist der Fehler ? Mach ich grundlegend was falsch ?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset,
  ZConnection,comctrls, StdCtrls;

type
  TForm1 = class(TForm)
    sqlconnection : TZConnection;
    SQLQuery : TZQuery;
    DataSource1: TDataSource;
    Grid: TStringGrid;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure filllist();
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var SQLText : String;
begin
  sqlconnection.HostName:='asdf'; //Server
  sqlconnection.User:='ghjk'; //Benutzername
  sqlconnection.Password:='qwer'; //Passwort
  sqlconnection.Database:='test'; //Name der Datenbank
  sqlconnection.Connect; //Verbindung herstellen
    if sqlconnection.Connected then
      label1.Caption := 'connected';
sqlquery.Free;

// set SQLText for query
  SQLText := 'SELECT r.RechnerID, r.Inventar_Nr, r.NetzwerkName, a.Benutzer_alt, a.Benutzer, a.Raum, r.Bemerkungen, r.StatusID, s.Bezeichnung, r.DockingstationID, a.MonitorID, a.Monitor2ID, r.Kaufdatum, r.InventarDatum';
  SQLText := SQLText +' FROM Rechner AS r JOIN Arbeitsplatz AS a ';
  SQLText := SQLText +' JOIN Status AS s ';
  SQLText := SQLText +' ON s.StatusID = r.StatusID ';
  SQLText := SQLText +' ON a.RechnerID = r.RechnerID ';
sqlquery.SQL.Text := sqltext;
sqlquery.Open;
filllist;
end;
Hier das vergebliche Anzeigen der Daten:
Delphi-Quellcode:
procedure tform1.filllist();
begin
Grid.RowCount := 2;
Grid.FixedRows := 1;
while not sqlquery.Eof do begin
    while NOT SQLQuery.EOF do begin
    Grid.RowCount := Grid.RowCount + 1;
    Grid.Cells[0,Grid.RowCount-2] := SQLQuery.FieldByName('Inventar_Nr').AsString;
    Grid.Cells[1,Grid.RowCount-2] := SQLQuery.FieldByName('NetzwerkName').AsString;
    Grid.Cells[2,Grid.RowCount-2] := SQLQuery.FieldByName('Benutzer').AsString;
    Grid.Cells[3,Grid.RowCount-2] := SQLQuery.FieldByName('Benutzer_alt').AsString;
    Grid.Cells[4,Grid.RowCount-2] := SQLQuery.FieldByName('Raum').AsString;
    Grid.Cells[5,Grid.RowCount-2] := SQLQuery.FieldByName('Bemerkungen').AsString;
    end;
  end;
end;

end.
  Mit Zitat antworten Zitat