Einzelnen Beitrag anzeigen

Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 10:24
Hallo Leute
ich versuche mich gerade daran, mit den Interbase-Kompos auf eine Firebird Datenbank zuzugreifen. Ich habe schon viel mit MySQL auch unter Delphi gearbeitet.

Ich habe jetzt diesen Code hier konstruiert:
Delphi-Quellcode:
procedure execquery(str:string;passv:boolean);
begin;
form1.qrmain.Close;
form1.qrmain.SQL.Clear;
form1.qrmain.SQL.Add(str);
if (passv) then form1.qrmain.Open
else form1.qrmain.ExecSQL;
end;



procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
execquery('SELECT * FROM sachbuch sb, gliederung gl WHERE (sb.sbid = gl.sbid)',true);
for i:= 0 to qrmain.RecordCount-1 do begin;
  qrmain.RecNo := i;
  showmessage(qrmain.fieldbyname('SBNR').asstring+'->'+qrmain.fieldbyname('GLNR').asstring);
end;
end;
Auf meinem Formular sitzt:
qrmain : TIBQuery
dbmain : TIBDatabase
trmain : TIBTransaction

Wenn ich jetzt auf den Button klicke kommt nur der erste Datensatz heraus. "qrmain.recordcount" enthält ja auch nur 1. Obwohl, wenn ich im "IB Expert" (Admin-Tool) das Query ausführe ich 3 Zeilen als Result bekomme. Es muß also an meinem Code liegen, aber wo?

Danke und Grüße
TO
  Mit Zitat antworten Zitat