Hallo,
ich kann mit dieser Fehlermeldung nichts anfangen:
Zitat:
invalid statement
handle
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements
Error Code: 165
Was mache ich:
Delphi-Quellcode:
with dm.Q01
do //TJvUIBQuery
begin
SQL.Text := '
Insert into ... Values(:Val01, :Val02, ...)';
if not(Transaction.InTransaction)
then
Transaction.StartTransaction;
Prepare;
while not ...
do
begin
dm.FillParam(dm.Q01, '
Val01', ..., ftString);
//Füllt die Parameter
dm.FillParam(dm.Q01, '
Val02', ..., ftInteger);
ExecSQL;
...
end;
Transaction.Commit;
//Rollback wird im Try-Except-Block ausgelöst
end;
procedure Tdm.FillParam(aQ: TJvUIBQuery;
const aParamName:
String;
const aField: TField;
const aFieldType: TFieldType;
const SetNullIfEmpty: Boolean);
var ParamIndex: Word;
begin
ParamIndex := aQ.Params.GetFieldIndex(aParamName);
if aField =
Nil then
aQ.Params.IsNull[ParamIndex] := True
else
if aField.IsNull
then
aQ.Params.IsNull[ParamIndex] := True
else
if (SetNullIfEmpty)
and
(aField.AsString = '
')
then
aQ.Params.IsNull[ParamIndex] := True
else
case aFieldType
of
ftInteger: aQ.Params.AsInteger[ParamIndex] := aField.asInteger;
ftString: aQ.Params.AsString[ParamIndex] := aField.asString;
else raise Exception.CreateFmt('
FillParam: Unknown FieldType for %s', [aParamName]);
end;
end;
Das funktioniert auch mehrfach. Will ich danach schreibend auf die
DB zugreifen, kommt es zu obengenanntem Fehler.
Was könnte hier noch offen sein?
Vielen Dank im Voraus
René