Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mehrere Werte mit Locate suchen (https://www.delphipraxis.net/87246-mehrere-werte-mit-locate-suchen.html)

mkinzler 26. Feb 2007 13:17

Re: Mehrere Werte mit Locate suchen
 
Delphi-Quellcode:
SplitPosNummer(Edit1.Text, PosNummer);

needatip 26. Feb 2007 15:29

Re: Mehrere Werte mit Locate suchen
 
Hinterher ist man immer schlauer. Na klar - PosNummer.
Jetzt wird der Datensatz nur gefunden wenn eine Positionsnummer mit einem Buchstaben eingefügt wird.
Beim Eingeben nur einer Zahl findet er den entspr. Datensatz nicht.
Liegt das etwa an dem #13, das in MyApos zurückgegeben wird?
(In meiner Datenbanktabelle können diese Werte nämlich auch NULL sein!)
Muss ich dann ein anderes Zeichen übergeben?

needatip 26. Feb 2007 17:42

Re: Mehrere Werte mit Locate suchen
 
Ich hab jetzt folgendes probiert:

wenn ich myPos.myApos durch 'Null' ersetze findet er den Datensatz!
Delphi-Quellcode:
if DM1.PosQuery.Locate('POSNR;APOS', VarArrayOf([myPos.MyPos,NULL]),[]) then
...
Wie bekomm ich den Wert Null in meiner Prozedur?
Delphi-Quellcode:
procedure SplitPosNummer(PosNr: string; var mypos: TMyPosNummer);
var i: integer;
  c: Char;
  s: string;
begin
  s := PosNr;
  if (s[Length(s)] in ['a'..'z']) then
  begin
    // Letztes Zeichen ist ein Buchstabe
    c := s[Length(s)];
    i := strtoint(LeftStr(s, length(s) - 1));
  end
  else
  begin
    i := strtoint(s);
    c := NULL; // !!!!!!!!!!!!!!!!! Da meckert der Compiler !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  end;
   mypos.myPOS := i;
   mypos.myAPOS := c;
end;

mkinzler 26. Feb 2007 17:49

Re: Mehrere Werte mit Locate suchen
 
Delphi-Quellcode:
type TMyPosNummer = record
    myPOS: Integer;
    myAPOS: Variant;
  end;

needatip 26. Feb 2007 20:05

Re: Mehrere Werte mit Locate suchen
 
:wall:
Ok, hab ich gemacht, aber er findet den Datensatz immer noch nicht.
In der SplitPosNummer Prozedur steht doch:
Delphi-Quellcode:
...
begin
  i := strtoint(s);
  c := #13; // Default
end;
...
Delphi-Quellcode:
c:= null
geht dann auch nicht!

needatip 28. Feb 2007 13:54

Re: Mehrere Werte mit Locate suchen
 
:bounce2:
Jetzt funktionierts!!!!
Ich Dussel hab vergessen die unit 'variants' mit in die uses klausel mitaufzunehmen! :oops: :oops: :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.
Seite 2 von 2     12   

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