Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listenindex überschreitet das Maximum (6) (https://www.delphipraxis.net/35704-listenindex-ueberschreitet-das-maximum-6-a.html)

Tyler 10. Dez 2004 21:49


Listenindex überschreitet das Maximum (6)
 
Hallo zusammen,

folgende Schleife:

Delphi-Quellcode:
    q_fields.SQL.Text := ' SHOW FIELDS FROM ' +
      tv_databases.Selected.Parent.Text + '.' +
      tv_databases.Selected.Text;
    q_fields.Open;
    q_fields.First;

    lb_fields.Width := 120;

    q_content.SQL.Text := 'SELECT ';

    lb_fields.Items.Clear;

    for i := 0 to q_fields.RecordCount - 1 do
    begin
      lb_fields.Items.Add( q_fields.Fields[i].FieldName );
      lb_fields.Checked[i] := cbChecked;
      q_content.SQL.Add( q_fields.FieldDefs[i].Name );
      if i < q_fields.RecordCount - 1 then q_content.SQL.Add(', ');
      q_fields.Next;
    end;

    q_content.SQL.Add(' FROM ' +
      tv_databases.Selected.Parent.Text + '.' +
      tv_databases.Selected.Text);
    lb_sqlsyntax.Items.Add( TimeToStr( time ) + ' | ' + q_content.SQL.GetText );
treibt mich ATM echt zur Verzweifelung.

Die Fehlermeldung, wie oben schon erwähnt:
"Listenindex überschreitet das Maximum (6)"
Die 6 bezieht sich, soweit ich weiss, auf die Anzahl der tatsächlichen Felder, also "RecordCount".
q_content ist eine TZQuery, tv_databases eine TreeView-Komponente, lb_sqlSyntax eine ListBox und lb_fields schliesslich die Listbox, in der die Felder aufgelistet werden sollen.

Der Fehler liegt auf jedenfall in der "FOR-TO"-Schleife. Wenn ich deren Inhalt auskommentiere, funktioniert alles.
Wenn ich aber nur eine Zeile (egal welche) innerhalb dieser Schleife ausführen lassen - kommt die Fehlermeldung.

Jemand ne Idee? Hab ich vielleicht was übersehen, weil ich jetzt schon wieder zu lange davor sitze? ^^

Danke euch im Voraus

tyler

Pr0g 10. Dez 2004 22:13

Re: Listenindex überschreitet das Maximum (6)
 
Vielleicht solltest du mal die einzelnen Zeilen der For-Schleife, in denen per Index auf ein Element zugegriffen wird, auskommentieren, um den Fehler weiter einzugrenzen.

Edit:
Zitat:

Zitat von Tyler
Wenn ich deren Inhalt auskommentiere, funktioniert alles.
Wenn ich aber nur eine Zeile (egal welche) innerhalb dieser Schleife ausführen lassen - kommt die Fehlermeldung.

Dann hat sich mein Vorschlag wohl erledigt :oops:

MfG Pr0g

Matze 10. Dez 2004 22:23

Re: Listenindex überschreitet das Maximum (6)
 
Was passiert, wenn du die Schleife von "1" - "q_fields.RecordCount" laufen lässt?

Delphi-Quellcode:
for i := 1 to q_fields.RecordCount do

Treffnix 10. Dez 2004 22:26

Re: Listenindex überschreitet das Maximum (6)
 
:gruebel:

RecordCount ist die Anzahl der Datensätze ( also der "Zeilen" ).
Fields sind die Felder ( "Spalten" )

Klingelts?

Tyler 10. Dez 2004 23:06

Re: Listenindex überschreitet das Maximum (6)
 
Zitat:

Zitat von Treffnix
:gruebel:

RecordCount ist die Anzahl der Datensätze ( also der "Zeilen" ).
Fields sind die Felder ( "Spalten" )

Klingelts?

hm...es klingelt... der Groschen fällt.... das Licht geht an.

Danke dir... manchmal... tja... weiss ich auch nicht. :wall:
Liegt woll daran, dass ich ursprünglich die Felder der Tabelle anhand "FieldCount" abegefragrt habe, und mich später für "SHOW FIELDS" entschieden habe... naja. Danke auf jedenfall.

tyler


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