Очень срочно нужна помощь.
Писал софт под учет товара + продажа, тестировал прогу на своей бд до 30 позиций. Все работало как нужно но
дали мне почти 7000 позиций и на 11 столбиков. Тут я и
Ближе к теме: загружаю из dbgid в stringgrid все позиции и [b] жду жду ....
Результат открывается но проходит много времени.
Вопрос как можно быстрей выгрузить данные из dbgid в stringgrid
Знаю что подход неправильный но переделывать очень много а времени как всегда нет. (
Мой код:
Код:
procedure TForm3.N7Click(Sender: TObject);
var
i200, j200:Integer;
begin
ADOQuery3.Active:=False;
AdoQuery3.SQL.Clear;
ADOQuery3.SQL.Text:='SELECT COUNT (*) FROM Products;';
ADOQuery3.Active:=true;
if not ADOQuery3.Eof then
begin
if not ADOQuery3.FieldByName('Expr1000').IsNull then
begin
dbCountInt23:=ADOQuery3.fieldbyname('Expr1000').AsInteger;
end
else
begin
ShowMessage('Ошибка! При выборке данных 00EX0CN');
end;
end;
ADOQuery3.Close;
StringGrid2.RowCount:=2;
StringGrid2.RowCount:=dbCountInt23 +1;
AdoQuery3.Close;
AdoQuery3.SQL.Clear;
AdoQuery3.SQL.Add('SELECT Products.Kod, Products.Articul, Products.Positions, Products.Cols, Products.Warehouse, Products.PresentPrice, Products.Comment FROM Products;');
ADOQuery3.Open;
j200 := 1;
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
for i200 := 0 to DBGrid1.Columns.Count -1 do
begin
StringGrid2.Cells[0,0]:='КОД';
StringGrid2.Cells[1,0]:='АРТИКЛ';
StringGrid2.Cells[2,0]:='НАИМЕНОВАНИЕ ПОЗИЦИИ';
StringGrid2.Cells[3,0]:='КОЛИЧЕСТВО';
StringGrid2.Cells[4,0]:='СКЛАД';
StringGrid2.Cells[5,0]:='ЦЕНА';
StringGrid2.Cells[6,0]:='КОМЕНТАРИЙ';
StringGrid2.Cells[i200, j200] := DBGrid1.DataSource.DataSet.Fields[i200].AsString;
//------------------------------------->
Form3.Repaint;
StringGrid2.Repaint;
end;
Inc(j200);
DBGrid1.DataSource.DataSet.Next;
end;
end;