Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Вниз

Так всё таки, можно как нибудь победить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
14-52637
Sobesednic
2001-11-20 22:56
2002.01.17
В чем разница Delphi 6 Enterprise(144mb) от Delphi 6 Personal(140mb)


3-52485
vano
2001-12-11 11:46
2002.01.17
CreateProcess


3-52516
Nest
2001-12-17 11:15
2002.01.17
Возможно ли из программы открыть временную таблицу для редактирования? Со стандартными компонентами не получается %(


1-52525
Beat
2001-12-27 10:21
2002.01.17
TIcon 16x16 а не 32x32?


3-52501
ripp
2001-12-15 15:40
2002.01.17
Повтор. Помогите!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский