![]() |
Datenbank: Delphidatenbank • Zugriff über: SQL
Label ist keine gültige Integerwert
Delphi-Quellcode:
Wenn ich diese Anweisung ausführe, kommt Folgende Fehlermeldung:
repeat
begin lfdnr := lfdnr + 1; while not Query1.Eof do begin buffer:= query1.Fieldbyname ('LFDNR').AsString; buffer1 := strtoint(buffer); if (buffer1 = lfdnr)then begin query1.Next; end else begin k := inttostr(lfdnr); Form4.Label14.Caption := k; end; end; end; until Query1.Eof; Label ist kein gültiger Integerwert, aber wo soll denn hier ein Label ein Integerwert sein?? THX Scuby |
Re: Label ist keine gültige Integerwert
Hi. Wenn du doppelt auf die Fehlermeldung klickst, springt Delphi zur entsprechenden Zeile im Source. Zeig mal nur diese Zeile.
Man liest sich, Stanlay :hi: Edit: Oder kompiliert er ohne Fehler und macht erst beim Laufen der Anwendung Probleme? |
Re: Label ist keine gültige Integerwert
So auf den ersten Blick seh ich nur dass Label hinten mit zwei "L" geschrieben ist (LabeLL).
Gruß Daniel |
Re: Label ist keine gültige Integerwert
Der Fehler kann meiner Meinung nach nur wegen diese Zeile kommen:
Delphi-Quellcode:
buffer hat hier evtl. den Wert 'Label' und den kann StrToInt() nicht verarbeiten. Kann das sein?
buffer:= query1.Fieldbyname ('LFDNR').AsString;
buffer1 := strtoint(buffer); |
Re: Label ist keine gültige Integerwert
Du hattest recht buffer hat den Wert Label und kann ihn daher nicht verareiten, aber nun kommt ja die frage, warum hat Buffer den Wert Label?
Ich stell mal die ganze Procedure rein, villeicht findet ihr ja den Fehhler, weil momentan kann ich ihn nicht orten.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var lfdnr,buffer1 : integer; var buffer,s,k : string; begin i := 1; lfdnr := 0; s := 'select LFDNR from teilnehmer'; query1.close; Query1.Sql.Clear; Query1.Sql.Add(s); Query1.ExecSQL; Query1.Active:=true; Query1.First; repeat begin lfdnr := lfdnr + 1; while not Query1.Eof do begin buffer:= query1.Fieldbyname ('LFDNR').AsString; buffer1 := strtoint(buffer); if (buffer1 = lfdnr)then begin query1.Next; end else begin k := inttostr(lfdnr); Form4.Label14.Caption := k; end; end; end; until Query1.Eof; label7.Caption := inttostr(i); Form5.Label18.Caption := Label7.Caption; form4.visible := true; if Checkbox1.Checked = true then Label6.Caption := 'LSM'; if Checkbox2.Checked = true then Label6.Caption := 'EH'; if Checkbox3.Checked = true then Label6.Caption := 'FreshUp'; if Checkbox4.Checked = true then Label6.Caption := 'EHT'; if Checkbox5.Checked = true then Label6.Caption := 'EH (BG)'; if Checkbox6.Checked = true then Label6.Caption := 'AKN'; if Checkbox7.Checked = true then Label6.Caption := 'SSD'; if Checkbox8.Checked = true then Label6.Caption := 'SHL'; if Checkbox9.Checked = true then Label6.Caption := 'SDL'; if Checkbox10.Checked = true then Label6.Caption := 'AED'; Form4.Label2.Caption := Label6.Caption; Form4.Label6.Caption := Edit1.Text; Form4.Label8.Caption := Edit2.Text; Form4.Label18.Caption := Edit3.Text; Form4.Label12.Caption := Label6.Caption; Form4.Label20.Caption := Form1.Label5.Caption; Form4.Label38.Caption := Form1.Label4.Caption; end; procedure TForm3.Button2Click(Sender: TObject); begin Form6.visible := true; Form3.visible := false; end; |
Re: Label ist keine gültige Integerwert
was soll das eigentlich
Delphi-Quellcode:
entweder while oder repeat, denn deine whileschleife läuft bis eof und das repeat läuft genau so, also hat das repeat keinen Effekt. Und warum dort label drin steht liegt wohl daran das in der Datenbank eventuell schon "Label" drin steht
repeat
begin lfdnr := lfdnr + 1; while not Query1.Eof do begin |
Re: Label ist keine gültige Integerwert
Delphi-Quellcode:
hmm :gruebel: und warum nicht gleich als Zahl auslesen/einschreiben ?? .. ( .AsInteger)
buffer:= query1.Fieldbyname ('LFDNR').AsString;
buffer1 := strtoint(buffer); sollten ja eh nur Zahlen drinnen stehen (weil StrToInt) oder?.. :gruebel: EDIT: Zitat:
|
Re: Label ist keine gültige Integerwert
Noch ne kleine Anmerkung zu deinem Sourcecode:
s := 'select LFDNR from teilnehmer'; query1.close; Query1.Sql.Clear; Query1.Sql.Add(s); Query1.ExecSQL; <-- nur bei INSERT / UPDATE / DELETE-Statements Query1.Active:=true; Query1.First; <-- Nach dem Open (oder Active:=true) der Query steht diese immer auf dem ersten Datensatz, kannst du dir also sparen Gruß Daniel |
Re: Label ist keine gültige Integerwert
Es gibt auch noch die Möglichkeit:
Delphi-Quellcode:
buffer1 := StrToIntDef(buffer, -1);
|
Re: Label ist keine gültige Integerwert
Der Wert 'Label' der in LFDNR steht kann keine Altlast sein, denn er wird immer wieder eingetragen, also muss in der Anweisung etwas falsch sein!
Die Tipps habe ich befolgt uns Soucrecode aufgeräumt. |
Re: Label ist keine gültige Integerwert
Noch so als kleine Anmerkung:
Das Program soll den letzten Zahlenwert der in LFDNR steht nachschlagen, besser gesagt, den höchsten und dann wieder einen hören anhängen! Bsp.: LFDNR 1 2 3 4 5 6 7 8 9 Zeile für Zeile wird nachgeschat wo der höchste wert ist und dann wir die 10 noch drangehängt, Villeicht ist s so etwas verständlicher. |
Re: Label ist keine gültige Integerwert
Warum machst du dann nicht gleich einen
select MAX(LFDNR) from teilnehmer Dann kommt doch schon nur der Größte Wert raus! Gruß Daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz