Einzelnen Beitrag anzeigen

nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#5

GELÖST: Die Anwendung verwendet für die akt. Vorgang einen Wert vom falschen Typ ?

  Alt 9. Nov 2012, 11:06
Hallo Union,

danke für den Hinweis. Ich habe soeben das Problem gelöst.

Die Ursache hierfür lag ganz woanderst, und möchte Euch auch die Lösung nicht vorenthalten
Hier der fehlerbehaftete Code:
Delphi-Quellcode:
//------------------------------------------------------------------------------
// Neue Anfrage, wenn Kunde gewechselt wird, Ansprechpartner aktualisieren
//------------------------------------------------------------------------------
procedure TfrmDLS_erstellen.DBEdit1Change(Sender: TObject);
begin
   With dataModul do begin
     if DBEdit14.Text <> 'then
        AdoQuery_Ansprechpartner.SQL.Clear;
        AdoQuery_Ansprechpartner.SQL.Text := 'SELECT * from DLS_KDAnsprech '+
        'WHERE DLS_KDAnsprech.KLFDNR = :sKLFDNR order by Name asc';

        AdoQuery_Ansprechpartner.Parameters.ParamByName('sKLFDNR').Value := DBEdit14.Text;
        AdoQuery_Ansprechpartner.Active := true;
     
   end;
end;
Nachdem der Befehl zum schliessen des Formulars kam, hatte das datensensitive Feld DBEdit14, keinen Wert mehr, wahr also leer.
Folglich musste die Abfrage darunter fehlschlagen. Die Selectabfrage konnte keinen Wert zurückliefern.

Den Code habe ich dann wie folgt geändert :

Delphi-Quellcode:
//------------------------------------------------------------------------------
// Neue Anfrage, wenn Kunde gewechselt wird, Ansprechpartner aktualisieren
//------------------------------------------------------------------------------
procedure TfrmDLS_erstellen.DBEdit1Change(Sender: TObject);
begin
   With dataModul do begin
     if DBEdit14.Text <> 'then begin // hier begin eingefügt
        AdoQuery_Ansprechpartner.SQL.Clear;
        AdoQuery_Ansprechpartner.SQL.Text := 'SELECT * from DLS_KDAnsprech '+
        'WHERE DLS_KDAnsprech.KLFDNR = :sKLFDNR order by Name asc';

        AdoQuery_Ansprechpartner.Parameters.ParamByName('sKLFDNR').Value := DBEdit14.Text;
        AdoQuery_Ansprechpartner.Active := true;
     end; // hier end eingefügt

   end;
end;
Zur Veranschaulichung siehe Grafik unten.
Miniaturansicht angehängter Grafiken
bild1.png  
Alles wird gut -

Geändert von TBx (19. Jul 2016 um 11:52 Uhr) Grund: Code-Tags durch Delphi-Tags ersetzt
  Mit Zitat antworten Zitat