Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehlersuche bei Locate (https://www.delphipraxis.net/67806-fehlersuche-bei-locate.html)

buyden 20. Apr 2006 09:50

Datenbank: MySQL • Version: 4.1 • Zugriff über: ZEOS

Fehlersuche bei Locate
 
hi,

ich hab ein kleines problem, beim anzeigen des richtigen datensatzes und finde keinen fehler.

folgender code:

Delphi-Quellcode:
procedure Tframeauftrag.edartikelExit(Sender: TObject);
begin
  with frmdata do
    begin
     tbartikel.Refresh;
     tbartikel.last;
     tbauftrag.Edit;
     tbauftrag.Post;
     if tbauftrag.FieldByName('artikel').AsString <>'' then
      begin
        if tbartikel.Locate('artikelnummer', frmdata.tbauftrag.fieldbyname('artikel').AsString,[locaseinsensitive]) = true then
          begin
            tbauftrag.Edit;
            tbauftrag.FieldByName('geraet').AsInteger := frmdata.tbartikel.fieldbyname('geraet').AsInteger;
            tbauftrag.Post;
            quauftrag.Close;
            quauftrag.Open;
          end
        else
          begin
            with frmneuerartikel do
              begin
                show;
                edneuartnummer.Text:=edartikel.Text;
                edneubezeichnung.Text:='';
                edneubezeichnung.SetFocus;
              end;
          end;
      end;
      try
        quauftrag.Locate('nummer',frmmain.pcauftrag.ActivePage.Caption,[locaseinsensitive]);
      except
        showmessage('Auftrag nicht gefunden!');
      end;
    end;
end;
zur erklärung:
ich habe ein datenbankfeld der tabelle "auftrag" namens "artikel". in dieses feld soll die artikelnummer eines gerätes über ein dbedit eingegeben werden.
beim verlassen des dbedits soll jetzt die dazugehörige artikelbezeichnung aus der tabelle "artikel" und der gerätetyp aus der tabelle "geraet" in nem dbedit bzw. ner dblookupcombobox angezeigt werden. in der tabelle "artikel" gibt's nen fremdschlüssel auf die geräte-id.
wenn die artikelnummer noch nicht existiert soll ein eingabefenster geöffnet werden.

jetzt das problem:
beim verlassen wird beim ersten mal immer die artikelbezeichnung und der gerätetyp eines anderen artikels angezeigt.
klick ich nochmal in das dbedit für die artikelnummer rein und verlasse es erneut aktualisiert er alles richtig, sowohl bezeichnung als auch gerät.

woran kann das liegen und wie kann ich das beheben?
bin für alle vorschläge offen.

buyden 21. Apr 2006 07:08

Re: Fehlersuche bei Locate
 
Ich hab nochmal ein bisschen rumprobiert aber keine Veränderung erreicht.

Das kuriose ist aber, die Artikelnummer wird korrekt angezeigt, nur die Beschreibung erst nach dem 2. Mal.

buyden 21. Apr 2006 10:14

Re: Fehlersuche bei Locate
 
Hab meinen Fehler gefunden, ich hatte die Tabellen in meinen DBLookupComboboxen falsch verknüpft.

Kleiner Fehler komische Wirkung. :lol:


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