Thema: Delphi Fehlersuche bei Locate

Einzelnen Beitrag anzeigen

Benutzerbild von buyden
buyden

Registriert seit: 10. Apr 2003
Ort: Schneeberg
228 Beiträge
 
Delphi 7 Enterprise
 
#1

Fehlersuche bei Locate

  Alt 20. Apr 2006, 10:50
Datenbank: MySQL • Version: 4.1 • Zugriff über: ZEOS
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.
Es gibt keine dummen Fragen, außer die von mir


MFG BUYDEN
  Mit Zitat antworten Zitat