Was steht denn hier konkret vor dem Befüllen der Parameter in procedure_create.SQL.Text?
SQL-Code:
procedure TfrmMain.IBDatabaseMKPAfterConnect(Sender: TObject);
begin
procedure_create.ParamByName('MNR').AsString := ':MNR';
procedure_create.ParamByName('JID').AsString := ':JID';
procedure_create.ParamByName('DID').AsString := ':DID';
procedure_create.ExecSQL;
end;
So ist das nur ein wages Rumraten und Stochern mit Hilfe der
Du hattest oben doch ein
SQL, das Doppelpunkte enthält, bei denen es sich nicht um Parameter handelt.
Wenn Parameter nicht ausgewertet werden sollen, muss ParamCheck auf False stehen. Es dürfen dann auch keine Parameter befüllt werden.
ParamCheck = false und ParamByName('ParameterName').AsString := 'Wert' schließen sich gegenseitig aus.
Ob der auftretende Fehler ursächlich mit den Parametern zusammenhängt, erscheint mir momentan nicht zwingend gegeben.
https://www.benefind.de/web.php?org=...erbase++xsqlda
Der Fehler kann wohl auch auftreten, wenn ein
SQL ungültige Zeichen enthält.
Lässt sich die Prozedur mit reinen Datenbankmitteln problemlos erstellen? Wenn nein, bitte erst dort die Fehler beheben und dann via Delphi erneut probieren.