كدي كه مي خواستم به stored procedure تبديل كنم دقيقا كد زيره:
حلقه اي كه براي پيمايش جدول و تغيير مقدار فيلدها به كار بردم براي جداول بزرگ خيلي طول مي كشه و فكر مي كنم بااستفاده از روال ذخيره شده سرعت افزايش پيدا كنه.
اگه ممكنه كمكم كنيد
var
Form1: TForm1;
Counter : Array of Integer;
implementation
{$R *.dfm}
function TForm1.GetRadMaj(DivCount,dav:integer):integer;
Const
ColumnCount = 250;
var
i,imod:integer;
MaxCount ,Index :integer;
begin
MaxCount:= ColumnCount * DivCount;
imod := dav mod MaxCount;
if imod = 0 then imod := MaxCount;
index := ((imod-1) DIV ColumnCount)+1;
Result := Counter[Index];
Counter[Index]:=Counter[Index]+DivCount;
end;
procedure TForm1.Button2Click(Sender: TObject);
var divcount , i:integer;
begin
divcount:=8;
SetLength(Counter,DivCount+1);
for I := 1 to DivCount do
Counter[I]:=I;
ADOQuery1.Close;
ADOQuery1.SQL.Text:='Select * from g order by [Column 0]';
ADOQuery1.Open;
ADOQuery1.DisableControls;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('radif').Value:=IntToStr(Get RadMaj(divcount,ADOQuery1.FieldByName('Column 0').AsInteger));
ADOQuery1.CheckBrowseMode;
ADOQuery1.Next;
end;
ADOQuery1.EnableControls;
end;





پاسخ با نقل قول