Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ну слишком медленный StringGrid. Что делать? [D7]


Страницы:   1 2

DmitrichJ ©   (2007-01-17 05:07:00) 

Вопрос в том, что вывожу данные в StringGrid. При около 100 записей это дело слишком затягивается. Делаю так:

form1.IBQuery1.First;
while not form1.IBQuery1.Eof do begin
 count:=count+1;
 StringGrid1.RowCount:=count+1;
   StringGrid1.Cells[0,count]:=Form1.IBQuery1.FieldByName('npfiz').AsString;
   StringGrid1.Cells[1,count]:=Form1.IBQuery1.FieldByName('fizfamil').AsString+' '+
                               Form1.IBQuery1.FieldByName('fizname').AsString+' '+
                               Form1.IBQuery1.FieldByName('fizotch').AsString;
end;

Примерно так.

Подскажите как выводить данные лучше? Или каки компонентом воспользоваться, кроме DBGrid.

Спасибо.


Fredy314   (2007-01-17 13:12:00) [21]

> [6] DmitrichJ   (17.01.07 12:02)
примерно так
 mySQLResult := MysqlClient.query(s, true, ok);
................
 For i := 0 To mySQLResult.RowsCount - 1 Do
   Begin
     For j := 0 To mySQLResult.FieldsCount - 1 Do
       Begin
        SG.Cells[j, i] := mySQLResult.FieldValue(j);
...........
Врятли парадокс тормознее мускула, скорее всего прав: > [9] Сергей М. ©   (17.01.07 12:18)
а StringGrid я юзаю потому что ненашёл в DBGrid-е OnDrawCell мне нужно поразному отрисовырать разные данные(Раравнивание по запятой например).


Сергей М.   (2007-01-17 13:04:00) [22]


> Думкин ©   (17.01.07 12:59) [12]


Ну и Next, конечно же.

Но есть большие подозрения, что StringGrid (или любой другой виз.компонент) здесь ни при чем, засада - в самом запросе и/или том что за ним скрывается.


Думкин   (2007-01-17 12:59:00) [23]


> Сергей М. ©   (17.01.07 12:18) [9]

А где Next?


DmitrichJ   (2007-01-17 12:45:00) [24]

Amoeba. Да знаю я SQL. Это я самый простой пример написал. А то что мне нужно сделать работает ещё медленнее.=(


Amoeba   (2007-01-17 12:41:00) [25]


> DmitrichJ   (17.01.07 12:02) [6]
>
> Fredy314, и как ты это делаешь?
>
> Amoeba, больше нравится в ручную делать и к томуже в одно
> из полей нужно собрать данные из разных таблиц. Легче всё
> таки в  StringGrid.

Конечно, вольному воля. Но, вообще-то, такие вещи легко и эффективно делаются запросами к базе. Изучай SQL.


Сергей М.   (2007-01-17 12:18:00) [26]

Пробуй:

with form1.IBQuery1, StringGrid1 do begin
Last;
RowCount := RecordCount;
First;
while not Eof do begin
  Inc(count);
  Cells[0,count]:= Fields[0].AsString;
  Cells[1,count]:= Fields[1].AsString+' '+ Fields[2].AsString + ' ' Fields[3].AsString + ' ' + Fields[4].AsString;
end;
end;

Если "тормоза" по-прежнему ощутимы, то проблема не иначе как в тексте самого запроса или в БД/СУБД


evvcom   (2007-01-17 12:08:00) [27]

> [6] DmitrichJ   (17.01.07 12:02)
> в одно из полей нужно собрать данные из разных таблиц

А Query у тебя на что? Ты, видимо, не умеешь им пользоваться?


DmitrichJ   (2007-01-17 12:06:00) [28]

В цикле, конечно же form1.IBQuery1.Next. =)


DmitrichJ   (2007-01-17 12:02:00) [29]

Fredy314, и как ты это делаешь?

Amoeba, больше нравится в ручную делать и к томуже в одно из полей нужно собрать данные из разных таблиц. Легче всё таки в  StringGrid.


Amoeba   (2007-01-17 10:48:00) [30]


> вывожу данные в StringGrid

Какая цель преследуется этим если отображаются даные из базы данных? Объясни честнОму народу. Есть ведь DBGrid, и не надо городить огород.


Fredy314   (2007-01-17 10:04:00) [31]

а что за запрос? у меня 4,5 тис записей выводится в StringGrid  обновляется постоянно изменяется запрос(фильтруется часть записей в запросе) и никаких тормозов незамечено.


Loginov Dmitry   (2007-01-17 07:44:00) [32]

> Подскажите как выводить данные лучше?


Довольно цивильно получается с помощью TListView


ASoft   (2007-01-17 07:25:00) [33]


DmitrichJ   (17.01.07 05:07)
> Примерно так.

хорошо, что "примерно" так, а то из цикла не выйдешь :)
А DBGrid чем не устраивает?


Virgo_Style   (2007-01-17 06:37:00) [34]

попробуй BeginUpdate - EndUpdate


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо