Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ZEOS+Firebird Embedded: First, Next... führen zu Overflow (https://www.delphipraxis.net/74870-zeos-firebird-embedded-first-next-fuehren-zu-overflow.html)

Alien426 9. Aug 2006 21:33

Datenbank: Firefox Embedded • Version: 1.5.1 • Zugriff über: ZEOS 6.5.1 alpha

ZEOS+Firebird Embedded: First, Next... führen zu Overflow
 
Hallo.

Wenn ich nach einer Abfrage ZQuery.First oder Next ausführen will, bekomme ich eine Exception der Klasse EStackOverflow.

Wenn ich aber "RecNo := RecNo + 1;" benutze, wird zum nächsten Datensatz gewechselt. Mach ich was falsch?

mkinzler 10. Aug 2006 00:08

Re: ZEOS+Firebird Embedded: First, Next... führen zu Overflo
 
Zeig mal deinen verwendeten Code.

Alien426 10. Aug 2006 10:16

Re: ZEOS+Firebird Embedded: First, Next... führen zu Overflo
 
Ist erst mal eine Sandbox, in der ich verschiedene Datenbank-Sachen teste. NoteOutput() gibt nur den übergebenen String in einer ListBox und einer Memo aus.
Delphi-Quellcode:
procedure TForm_Main.Button_ConnectClick(Sender: TObject);
begin
  if FileExists(ZConnection_Main.Database) then
    ZConnection_Main.Connect;
  With ZQuery_Main do
  begin
    SQL.Clear;
    SQL.Add('SELECT "pro_main"."Sorter","pro_main"."Title","pro_main"."ExePath" FROM "pro_main" ORDER BY "pro_main"."Sorter"');
    Open;
    // verschiedene Ausgaben getestet, die Daten vom ersten Datensatz werden ausgegeben
    Edit_Title.Text := ZQuery_Main.Fields.Fields[1].Text;
    Edit_Sorter.Text := Fields.Fields[0].Text;
    Edit_ExePath.Text := ZQuery_Main.Fields.Fields[2].AsString;
    ListBox_Main.Items.Add(ZQuery_Main.Fields.Fields[1].AsString);
    NoteOutput('Record number: ' + IntToStr(RecNo)); // ist 1
    Next; // Fehler
    ZQuery_Main.RecNo := RecNo + 1;
    ListBox_Main.Items.Add(ZQuery_Main.Fields.Fields[1].AsString);
    // Info
    if Bof then
      NoteOutput('First record.'); // wird nicht ausgegeben
    if Eof then
      NoteOutput('Last record.'); // wird nicht ausgegeben
    NoteOutput(IntToStr(RecordCount) + ' records.'); // 7 Datensätze
    NoteOutput(IntToStr(FieldCount) + ' fields.'); // 3 Felder
  end;
end;

hoika 10. Aug 2006 10:23

Re: ZEOS+Firebird Embedded: First, Next... führen zu Overflo
 
Hallo,

tja, sieht alles korrekt aus.
Es könnte ein Bug der Alpha-Version sein.
Probier die stable Version.

Wie viele records sind denn drin ?

Falls es nur einer ist, vielleicht mal prüfen (if not EOF then Next).

Heiko


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