Hallo,
Ich habe eine Tabelle „Customer.db“ mit den Feldern KundenNr, KundenName, KundeSeit und möchte mittels parametrisierter Query-Abfrage Daten in die Tabelle einfügen, wobei auch Nullwerte zulässig sein sollen.
SQL.String:
<PRE>INSERT INTO „Customer.db“
VALUES (:KundenNr, :Kundenname, :KundeSeit)</PRE>
Einfügen des neuen Datensatzes in „Customer.db“ mit folgenden Anweisungen:
<PRE>with Query1 do begin
Close;
if (Edit1.Text <> '') then
ParamByName('KundenNr').AsInteger := IntToStr(Edit1.Text)
else
ParamByName('KundenNr').Value := Null; { Fehlermeldung! }
ParamByName('KundenName').AsString := Edit2.Text;
if (Edit3.Text <> '') then
ParamByName('KundeSeit').AsDateTime := StrToDate(Edit3.Text)
else
ParamByName('KundeSeit').Value := Null; { Fehlermeldung! }
ExecSQL;
end;</PRE>
Wurde z. B. in Edit1 keine Kundennummer eingegeben, dann wird die Übernahme der Eingabedaten in die Tabelle mit der Fehlermeldung "Typ für Feld 'KundenNr' ist unbekannt." Abgebrochen. Dieselbe Fehlermeldung erhalte ich, wenn ich programmiere:
… ParamByName('KundenNr').SetData(nil);
Lösungen wie
… ParamByName('KundenNr').AsString := '';
… ParamByName('KundenNr').Text := '';
führen zur Meldung "Keine Übereinstimmung der Typen im Ausdruck".
Wie lassen sich aber dann Nullwerte via parametrisierter Query-Abfrage in eine Tabelle einfügen?
Der direkte, aber nicht gangbare Weg, über
… Table.FieldByName('KundenNr').AsVariant := Null;
würde funktionieren. TParam dagegen hat aber keine Eigenschaft AsVariant.
Besten Dank für jeglichen Hinweis, der mich einer Lösung näher bringt.
Ich habe eine Tabelle „Customer.db“ mit den Feldern KundenNr, KundenName, KundeSeit und möchte mittels parametrisierter Query-Abfrage Daten in die Tabelle einfügen, wobei auch Nullwerte zulässig sein sollen.
SQL.String:
<PRE>INSERT INTO „Customer.db“
VALUES (:KundenNr, :Kundenname, :KundeSeit)</PRE>
Einfügen des neuen Datensatzes in „Customer.db“ mit folgenden Anweisungen:
<PRE>with Query1 do begin
Close;
if (Edit1.Text <> '') then
ParamByName('KundenNr').AsInteger := IntToStr(Edit1.Text)
else
ParamByName('KundenNr').Value := Null; { Fehlermeldung! }
ParamByName('KundenName').AsString := Edit2.Text;
if (Edit3.Text <> '') then
ParamByName('KundeSeit').AsDateTime := StrToDate(Edit3.Text)
else
ParamByName('KundeSeit').Value := Null; { Fehlermeldung! }
ExecSQL;
end;</PRE>
Wurde z. B. in Edit1 keine Kundennummer eingegeben, dann wird die Übernahme der Eingabedaten in die Tabelle mit der Fehlermeldung "Typ für Feld 'KundenNr' ist unbekannt." Abgebrochen. Dieselbe Fehlermeldung erhalte ich, wenn ich programmiere:
… ParamByName('KundenNr').SetData(nil);
Lösungen wie
… ParamByName('KundenNr').AsString := '';
… ParamByName('KundenNr').Text := '';
führen zur Meldung "Keine Übereinstimmung der Typen im Ausdruck".
Wie lassen sich aber dann Nullwerte via parametrisierter Query-Abfrage in eine Tabelle einfügen?
Der direkte, aber nicht gangbare Weg, über
… Table.FieldByName('KundenNr').AsVariant := Null;
würde funktionieren. TParam dagegen hat aber keine Eigenschaft AsVariant.
Besten Dank für jeglichen Hinweis, der mich einer Lösung näher bringt.
Comment