Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.17;
Скачать: CL | DM;

Вниз

Так всё таки, можно как нибудь победить DBGrid?   Найти похожие ветки 

 
Котелок   (2001-12-10 07:47) [0]

Так всё таки, можно как нибудь победить DBGrid?
Чтобы бегунок у него работал как положено, а не имел только 3-и позиции. Или может есть какой-нито Grid расширенный с такой способностью....


 
kd   (2001-12-10 08:19) [1]

Я пробовал юзать ADO: ADOQuery->DataSourset1->DBGrid и бегунок работал нормально


 
Котелок   (2001-12-10 09:07) [2]

Хмм...
Учту на будуюшее

Но сейчас у меня уже куча кода Database->TQuery->datasource->DbGrid

Вот это меня и интересует.....


 
Alex Y   (2001-12-10 09:09) [3]

Попробуй EhLib компонент, достаточно грамотно сделан.


 
Mick   (2001-12-10 09:27) [4]

Не надо это бороть. И не надо ставить грамотно сделанные гриды, которые на SQL серверах показывают правильное положение бегунка.


 
Deniz   (2001-12-10 09:35) [5]

Зависит не от DBGrid"а, а от используемых xxxQuery


 
Boo   (2001-12-10 09:38) [6]

Если моно получать значения RecordCount и GerRecNo, то моно изнахратится:
procedure TFrom1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
If Table1.State=dsBrowse then begin
SetScrollRange(DBGrid1.Handle, SB_VERT, 0, Table1.RecordCount-1, False);
SetScrollPos(DBGrid1.Handle, SB_VERT, GetRecNo-1, False);
end;
end;

Изврат конечно, но говорят проходит (код не мой).
Недостатки: работает не со всеми дровами ODBC, прорисовка движка скрола 2 раза
Table1 моно заменить на Query1


 
Alex Y   (2001-12-10 09:54) [7]

Deniz абсолютно прав. С данными работает tTable и tQuery, а какой Grid ты используешь не имеет значения.


 
Boo   (2001-12-10 13:05) [8]

<Alex Y>
Проблема дальше чем TTable или TQuery
для MSSQL трабла упирается в ODBC драйвер, для других серваков не знаю...


 
Alex Y   (2001-12-10 13:18) [9]

<Boo> Не в драйвер а в tDatabase. Это он коряво работает. см. <kd>


 
Boo   (2001-12-10 13:43) [10]

Alex Y
точно, сорри
Пора юзать ADO :=)


 
Alex Y   (2001-12-10 13:49) [11]

<Boo> А то :)


 
Котелок   (2001-12-11 03:32) [12]

Кусок кода упорно отказывается работать..:-(

В хелпе да и в исходниках написано, что номер позиции может быть получен только из TTable и если тип DBase....

Может какой обходно путь есть..??

И ещё может, кто знает, где можно почитать про ADO...желательно для чайников и котелков....:-))


 
Alex Y   (2001-12-11 04:55) [13]

На базавом уровне работать с ADO точно также как и с BDE.
Отличие лишь в настройке соединения. В BDE ты Alias настраиваешь в администраторе, а в ADO - прямое соединение соединение (там мастер довольно понятный). А дальше те же самые tADOTable и tADOQuery и работаешь с ними точно также.
Для чайников этого вполне хватит :), а в тонкостях впоследствии сам разберешся.


 
Котелок   (2001-12-11 07:53) [14]

> Alex Y

Скачал и поставил EhLib. Классссс....Лучше чем Rx-ий, но немного притормаживает (бегунок нормально бегает). С этим можно как нибудь боротся или нет (может какие хитрости в настройках есть...???)?

Я свойство SumList
Active := true;
VirtualRecords := true;
ExternalRecalc := false;

Всё правильно..???


 
Alex Y   (2001-12-11 08:04) [15]

Вот чего не знаю, того не знаю. Это лучше у разработчиков спросить.
Я сам на него недавно наткнулся.


 
22606   (2001-12-11 10:24) [16]

EhLib и прочие гриды, реально показывающие расположение записи в наборе данных действуют по принципу "все данные на клиента", ведь для правильного отображения бегунка необходимо по крайней мере знать сколько записей вернул запрос.
Все вышеописанные способы и реализуют это, неважно какой ценой.
Но всякая попытка декоративно приукрасить приложение путем "правильного позиционирования бегунка" обернется сильными тормозами, если данных в запросе (таблице) будет больше.
Поэтому прав здесь Mick</> - ничего не надо трогать.
По большому счету это положение не так уж и важно, во всяком случае быстродействие гораздо важнее.
В крайнем случае это может быть оправдано, если вы уверены, что данных немного (но опять таки тогда и "правильный бегунок" теряет смысл) либо когда база данных локальная типа Dbase или Paradox


 
22606   (2001-12-11 10:30) [17]

Извините, не углядел за закрывающим тегом.
То Котелок ©: оттого он и тормозит (см.выше)


 
Котелок   (2001-12-11 10:52) [18]

Если честно, то мне на этот бегунок, как грится, с высокой колоколни....

Но вот заказчик упёрся....Надо ему понимаешь-ли...

Всем TNX за помощь.....


 
Yakudza   (2001-12-11 11:49) [19]

А где взять EhLib ?


 
Котелок   (2001-12-13 02:25) [20]

Хде-Хде..???

На сайте разроботчика..:-)))
Поисковые сервера зачем созданы..??:-)
http://www.farpost.com/personal/dmitryb/RUS/ehlibrus.exe

Пароль 2-а раза название 2-го месяца года большими буквами....


 
Мефодий   (2001-12-14 12:57) [21]

Я тоже скачал и поставил EhLib. Проверил на DBF файле (с опциями, указанными Alex Y). Все отлично работает, если нет индекса или он подключен. При включении индекса получается еще хуже, чем у Борланда.



 
Мефодий   (2001-12-14 17:29) [22]

Поправка
..., если нет индекса или он не подключен.
Я также давно ищу решение и все больше убеждаюсь, что для индексированного файла ВАРИАНТОВ НЕТ.



Страницы: 1 вся ветка

Текущий архив: 2002.01.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
1-52570
Socol
2001-12-29 04:44
2002.01.17
Поиск текста?


7-52676
REL
2001-10-02 19:43
2002.01.17
Com порт


3-52471
МАРАТ
2001-12-14 15:21
2002.01.17
Не могу открыть *.GDB


1-52604
shnitken
2001-12-28 03:50
2002.01.17
MediaPlayer


3-52491
ripp
2001-12-15 15:21
2002.01.17
Как наити строку