Autor Téma: FireDAC Array DML - xxx.Params.ArraySize := čo?  (Přečteno 967 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
FireDAC Array DML - xxx.Params.ArraySize := čo?
« kdy: 31-05-2016, 19:38:16 »

Študujem FireDAC a na základe toho chcem nahradiť kód
Kód: Delphi [Vybrat]
  1.   while Assigned(Node) do
  2.   begin
  3.     if Node.CheckState = csCheckedNormal then
  4.     begin
  5.       if not cmdDeposit_Upd.Transaction.Active then
  6.         cmdDeposit_Upd.Transaction.StartTransaction;
  7.  
  8.       NodeData := vstDeposit.GetNodeData(Node);
  9.       NodeData.Paid := NodeData.Paid + NodeData.OldAMOUNT;
  10.       NodeData.DIFFERENCE := NodeData.Paid - NodeData.AMOUNT;
  11.       cmdDeposit_Upd.ParamByName('FKLANDLORD_FLAT').AsInteger := NodeData.IDLanlord_Flat;
  12.       cmdDeposit_Upd.ParamByName('PERIOD').AsDate := dPeriod;
  13.       cmdDeposit_Upd.Execute();
  14.     end;
  15.  
  16.     Node := vstDeposit.GetNext(Node);
  17.   end;
  18.  
týmto kódom, a neviem či som správne pochopil čo dať do ArraySize. Z jeho definície nie som múdry.
Kód: Delphi [Vybrat]
  1.   lstNode := TList<PVirtualNode>.Create;
  2.   Node := vstDeposit.GetFirst();
  3.  
  4.   while Assigned(Node) do
  5.   begin
  6.     if Node.CheckState = csCheckedNormal then
  7.       lstNode.Add(Node);
  8.  
  9.     Node := vstDeposit.GetNext(Node);
  10.   end;
  11.  
  12.   cmdDeposit_Upd.Params[0].DataType := ftInteger;
  13.   cmdDeposit_Upd.Params[1].DataType := ftDate;
  14.   cmdDeposit_Upd.Params.ArraySize := lstNode.Count;  // Je to tak správne?
  15.  
  16.   for I := 0 to lstNode.Count -1 do
  17.   begin
  18.     NodeData := vstDeposit.GetNodeData(lstNode[I]);
  19.     NodeData.Paid := NodeData.Paid + NodeData.OldAMOUNT;
  20.     NodeData.DIFFERENCE := NodeData.Paid - NodeData.AMOUNT;
  21.     cmdDeposit_Upd.Params[0].AsInteger := NodeData.IDLanlord_Flat;
  22.     cmdDeposit_Upd.Params[1].AsDate := dPeriod;
  23.   end;
  24.  
  25.   cmdDeposit_Upd.Execute(lstNode.Count, 0);
  26.  
« Poslední změna: 31-05-2016, 19:40:10 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4426
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:FireDAC Array DML - xxx.Params.ArraySize := čo?
« Odpověď #1 kdy: 01-06-2016, 08:01:22 »
Až teraz som si všimol
Citace
First, setup array length by assigning value to Params.ArraySize.
a tým to je jasné.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.