![]() |
Datenbank: Interbase • Version: 6.2 • Zugriff über: UIB
invalid statement handle
Hallo,
ich kann mit dieser Fehlermeldung nichts anfangen: Zitat:
Delphi-Quellcode:
Das funktioniert auch mehrfach. Will ich danach schreibend auf die DB zugreifen, kommt es zu obengenanntem Fehler.
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; Was könnte hier noch offen sein? Vielen Dank im Voraus René |
Re: invalid statement handle
Hallo René :zwinker:,
das ist doch ganz einfach. Verwende doch Execute anstelle von ExecSQL, dann gehts. Nur falls es auch mal jemand anderes trifft. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz