Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi abfrage mit meheren möglichkeiten (https://www.delphipraxis.net/31221-abfrage-mit-meheren-moeglichkeiten.html)

JSB 6. Okt 2004 09:57


abfrage mit meheren möglichkeiten
 
Wie kann ich eine abfrage machen bei denen es mehrere Möglichkeiten gibt? :coder2:

z.B:

Delphi-Quellcode:
   if qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = (1) or (3) then
klappt nicht, er Compiliert sagt aber bei Abfrage nein obwohl "letzter_vorgangart" tatschächlich =1 ist... :gruebel:

Igotcha 6. Okt 2004 10:00

Re: abfrage mit meheren möglichkeiten
 
So müsste es gehen:

Code:
 if (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 1) or (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 3) then
Gruß Igotcha

alcaeus 6. Okt 2004 10:00

Re: abfrage mit meheren möglichkeiten
 
Hi JSB,

entweder so
Delphi-Quellcode:
if (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 1) or (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 3) then
oder so
Delphi-Quellcode:
 if qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger in [1, 3] then
Greetz
alcaeus

[add]
Zitat:

Zitat von JSB
der Compiliert sagt aber bei Abfrage nein obwohl "letzter_vorgangart" tatschächlich =1 ist... :gruebel:

Wenn der Compiler was nicht compilieren will, so hat das noch überhaupt nichts mit dem Wert der Variable zu tun. In deinem Fall wird nur überprüft, ob die Variable 3 ist, da 1 or 3 (01 or 11) = 3 (11).
[/add]

Sharky 6. Okt 2004 10:01

Re: abfrage mit meheren möglichkeiten
 
Hai JSB,

zwei möglichkeiten:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wert : Integer;
begin
  wert := 2;
  if wert IN [1,3] then
  begin
    ShowMessage ('Jup');
  end
  else
  begin
    ShowMessage ('Nöp');
  end;
end;
oder
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wert : Integer;
begin
  wert := 1;
  if (wert = 1) or (wert = 2) then
  begin
    ShowMessage ('Jup');
  end
  else
  begin
    ShowMessage ('Nöp');
  end;
end;
[Edit] Da war Andreas doch tatsächlich schneller :stupid: [/edit]

JSB 6. Okt 2004 10:04

Re: abfrage mit meheren möglichkeiten
 
Danke die in-Methode klappt wunderbar!!! :cheers:

Jens Schumann 6. Okt 2004 10:11

Re: abfrage mit meheren möglichkeiten
 
Zitat:

Zitat von JSB
Delphi-Quellcode:
   if qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = (1) or (3) then

Du prüfst ja auch nicht auf 1 oder auf 3 sondern nur auf 3 !!!
Denn 1 or 3 = 3

Du müsstest schreiben
Delphi-Quellcode:
   if (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 1) or (qMitarbeiter.FieldByName('letzter_vorgangart').AsInteger = 3) then


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