AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Params.ParamByName

Ein Thema von fapsons · begonnen am 14. Mär 2007 · letzter Beitrag vom 14. Mär 2007
Antwort Antwort
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#1

Params.ParamByName

  Alt 14. Mär 2007, 10:19
Datenbank: Firebird • Version: 2.0 • Zugriff über: InterBase
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;
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#2

Re: Params.ParamByName

  Alt 14. Mär 2007, 11:09
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.
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#3

Re: Params.ParamByName

  Alt 14. Mär 2007, 11:10
Check mal D_DataModule.DataQuery.ParamCheck. Das muss TRUE sein.
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#4

Re: Params.ParamByName

  Alt 14. Mär 2007, 11:10
Zitat von dfried:
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.
eben das stimmt nicht wenn ParamCheck True ist.
  Mit Zitat antworten Zitat
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#5

Re: Params.ParamByName

  Alt 14. Mär 2007, 11:11
Hallo, habe es jetzt ohne deinen Vorschlag auch hinbekommen. Lag an der falschen Durchnummerierung, der SQL-Lines... Sorry
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Params.ParamByName

  Alt 14. Mär 2007, 14:21
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz