Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
:wall:
Ok, hab ich gemacht, aber er findet den Datensatz immer noch nicht.
In der SplitPosNummer Prozedur steht doch:
...
begin
i := strtoint(s);
c := #13; // Default
end;
...
Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
Ich hab jetzt folgendes probiert:
wenn ich myPos.myApos durch 'Null' ersetze findet er den Datensatz!
if DM1.PosQuery.Locate('POSNR;APOS', VarArrayOf(),) then
...
Wie bekomm ich den Wert Null in meiner Prozedur?
procedure SplitPosNummer(PosNr: string; var mypos: TMyPosNummer);
var i: integer;
c: Char;
Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
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...
Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
OK, wie sieht denn dann der Aufruf aus meinem Programm aus?
Ich möchte diese Funktion/Prozedur auslagern, da ich diese von mehreren Stellen aufrufen möchte.
Ich muss doch dann noch TMyPosNummer an SplitPosNummer übergeben
procedure TForm1.Button1Click(Sender: TObject);
begin
SplitPosNummer(Edit1.Text); //????????????
ShowMessage('PosNummer= '+IntToStr(PosNummer.myPOS)+', APos=...
Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
Nein, es soll ja in jedem Fall ein Ergebnis zurückgegeben werden.
d.h.
falls das letzte Zeichen ein Buchstabe ist soll Result.myPos die Zahl enthalten und Result.myAPos den Buchstaben.
Wenn kein Buchstabe vorhanden ist dann soll Result.myApos nichts enthalten.
function SplitPosNummer(PosNr: string): TMyPosNummer;
var i: integer;
c: Char;
s: string;
begin
Forum: Datenbanken
Delphi
by needatip,
26. Feb 2007
Ja ! Ich hab auch die Funktion IsValidPos von Dir in abgewandelter Form eingebaut.
Hab sie nur der Übersichtlichkeit halber hier weggelassen!
function IsValidPos(s: string): Boolean;
var
number, index: Integer;
begin
Val(s, number, index);
Result := (index = 0) or (s = '')
or ((index > 1) and (s in ) and (index = Length(s)));
Forum: Datenbanken
Delphi
by needatip,
25. Feb 2007
Hallo zusammen,
in meiner Datenbanktabelle habe ich 2 Felder:
PosNr - int;
Apos - Char;
Nun möchte ich zu einem bestimmten Datensatz springen,
wobei das PosNummer Feld ein Integer-Wert und das APos Feld ein Char-Wert ist.
Die beiden Werte liefert mir eine Funktion zurück, bei der PosNummer.MyPos als Integer und
PosNummer.MyApos als Char definiert ist.