![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: InterBase
Params.ParamByName
Hallo Leute,
habe das Problem, dass ich bei unten aufgeführter Procedure immer die Fehlermeldung bekomme, dass die einzelnen Parameter nicht gefunden wurden. Lege ich die falsch fest? Kann ich nicht die Schreibweise :ZE, :BDE, usw. benutzen und Sie nachher mit Params.ParamByName('ZE').Value definieren? Gruß, -fapsons--
Delphi-Quellcode:
procedure Set_DB_Values;
var i :Integer; SQL_Line: array[1..5] of String; SQL_Prompt :String; begin SQL_Line[1] := 'UPDATE Version v '; SQL_Line[2] := 'SET v.ze = :ZE, v.bde = :BDE, v.pep = :PEP, v.zk = :ZK, v.av = :AV, v.webze = :WEBZE, v.antrv = :ANTRV,'; SQL_Line[3] := 'v.sprachv = :SPRACHV, v.anz_client = :nCLIENT, v.pc_ddp = :PCDDP, v.server_name = :SERVERNAM,'; SQL_Line[4] := 'v.ma_anz = :MAANZ'; SQL_Line[3] := 'WHERE (v.vsid =''' + inttostr(reg.Versions_ID) + ''')'; for i := 1 to length(SQL_Line) do SQL_Prompt := SQL_Prompt + SQL_Line[i]; with D_DataModule.DataQuery do begin SQL.Clear; SQL.Text := SQL_Prompt; Params.ParamByName('ZE').Value := bool_to_JN(reg.ZE); Params.ParamByName('BDE').Value := bool_to_JN(reg.BDE); Params.ParamByName('PEP').Value := bool_to_JN(reg.PEP); Params.ParamByName('ZK').Value := bool_to_JN(reg.ZK); Params.ParamByName('AV').Value := bool_to_JN(reg.AV); Params.ParamByName('WEBZE').Value := bool_to_JN(reg.WebZE); Params.ParamByName('ANTRV').Value := bool_to_JN(reg.AntragsV); Params.ParamByName('SPRACHV').Value := inttostr(reg.Sprachversion); Params.ParamByName('nCLIENT').Value := inttostr(reg.nClients); Params.ParamByName('PCDDP').Value := reg.PC_DDP; Params.ParamByName('SERVERNAM').Value := reg.ServerName; Params.ParamByName('MAANZ').Value := inttostr(reg.nMitarbeiter); Params.ParamByName('VERSKEY').Value := reg.VersionKey; Params.ParamByName('VERSID').Value := inttostr(reg.Versions_ID); Params.ParamByName('FILID').Value := inttostr(reg.Filial_ID); ExecSQL; end; end; |
Re: Params.ParamByName
Du musst erst mal die Parameter auch definieren bevor du Sie verwenden kannst, die einfach in den SQL reinzuschreiben reicht nicht, es muss zusätzlih noch für jeden Parameter ein Params.AddParam(...) aufgerufen werden wo dann z.B. auch der Datentyp des Parameters festgelegt wird.
|
Re: Params.ParamByName
Check mal D_DataModule.DataQuery.ParamCheck. Das muss TRUE sein.
|
Re: Params.ParamByName
Zitat:
|
Re: Params.ParamByName
Hallo, habe es jetzt ohne deinen Vorschlag auch hinbekommen. Lag an der falschen Durchnummerierung, der SQL-Lines...;) Sorry :wall: :wall:
|
Re: Params.ParamByName
Hallo,
wozu sollte das array überhaupt gut sein.
Delphi-Quellcode:
with Query do
begin SQL.Clear; SQL.Add('Update Table set bla=:bla, bla2=:bla2,'); SQL.Add('bla3=:bl3, bla4=:bla4'); ParamByName('bla').AsX:= ; ParamByName('bla2').AsX:= ; usw. ExecSQL; end; Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 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