Code: Alles auswählen
SqlQuery.Close;
SqlQuery.SQL.Clear;
SqlQuery.SQL.Add('INSERT INTO SNSerienNr ');
SqlQuery.SQL.Add('(IdentNr, SerienNr, Zusatz, EtikettTyp, Text1, Text2, Text3, Bem) ');
SqlQuery.SQL.Add('VALUES (:IDNR, :SERNR, :ZUSATZ, :TYP, :TEXT1, :TEXT2, :TEXT3, :BEM) ');
SqlQuery.Params.ParamByName('IDNR').AsString := 'AAA';
SqlQuery.Params.ParamByName('SERNR').AsInteger := 1;
SqlQuery.Params.ParamByName('ZUSATZ').AsString := 'X';
SqlQuery.Params.ParamByName('TYP').AsString := 'BBB';
SqlQuery.Params.ParamByName('TEXT1').AsString := 'A';
SqlQuery.Params.ParamByName('TEXT2').AsString := 'B';
SqlQuery.Params.ParamByName('TEXT3').AsString := 'C';
SqlQuery.Params.ParamByName('BEM').AsString := 'XX';
SqlQuery.ExecSQL;
SqlTransaction.Commit;
Wenn ich "ID" einen Wert zuweisen will bekomme ich eine klare Fehlermeldung daß das bei diesem Feldtyp nicht sein darf,
ebenso bei Tippfehlern, da kommt dann eben die entprechende Meldung daß der Bezeichner nicht bekannt ist.
Die Tabelle als solches funktioniert seit Jahren mit einer Delphi-Anwendung,
ich kann aber auch per Access oder sonstigem da Datensätze bearbeiten und einfügen,
kann also schon abschätzen welche Felder gebraucht werden und welche nicht.
Die "Voraussetzungen im Hintergrund" versuchte ich ja damit abzudecken, ein möglichst einfaches funktionierendes Beispiel abzubilden,
jedoch konnte ich bei keinem der bisher vorgeschlagenen Muster erfolgreich einen Datensatz schreiben und die Fehlermeldung ist relativ nichtssagend.
Könnte mir vielleicht jemand mal eine komplettes funktionierendes Testprojekt,
nur bestehend aus ODBCConnection + SQLTransaction + SQLQuery + Datasource zukommen lassen
bei der nur ein Datensatz in eine ODBC-Datenbank geschrieben wird?
Ich glaube das wär die einzige Möglichkeit abzukären ob es sich hier um einen prinzipiellen Fehler handelt oder nicht.
Danke schon mal im Voraus
eiko