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

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

Глюк DBGrid? [D5, dBase, FoxPro, Paradox]


Страницы:   1 2

Aaz ©   (2002-03-11 07:21:00) 

Странно, но полоса прокрутки имеет всего три положения - начало, середина конец. При прокрутке стоит на середине. Это глюк DBGrid или моих корявых ручек?


panov   (2002-03-12 22:20:00) [1]

>Lusha © (12.03.02 15:27)
потому что все высказывания по теме, и на личные споры никто не перешел...


Anatoly Podgoretsky   (2002-03-12 22:08:00) [2]

koks © (12.03.02 10:32)
Aaz (12.03.02 12:28)

Все корректно, только это не тот номер, который нужен скроллеру, ему нужен порядковый номер записи полученного _набора_

RecNo это физический номер записи в таблице.

Нужно ли еще какие либо объяснения.


Lusha   (2002-03-12 15:27:00) [3]

>Bachin
Дело не в DataSource
>Malder
Посмотрите исходники процедуры TCustomDBGrid.UpdateScrollBar. Там все весьма лаконично написано.
>Aaz
Просто написать свою процедуру UpdateScrollBar у TDBGrid, где самому определять внешний вид ScrollBar исходя из имеющихся у Вас данных и все дела... :-)


И всем вместе. Внимательно слушайте, что Вам говорят. В частности то, что говорили Anatoly Podgoretsky и Shaman_Naydak...


P.S.
>Moderator
А почему этот флейм до сих пор не в разделе "Потрепаться"? :-)


Malder   (2002-03-12 15:03:00) [4]

Nest, просто видел базы данных у которого такого нет.

Ну то есть видел программу, в котором была куча записей, можно добавлять, удалять, фильтровать ну и т.д. Все это было в гриде. И проблем не было. Может она конечно не базы использовала, а текстовый файл... только навряд ли. И была эта программа локальная. Вот так. Значит, думаю, просто недоработка в гриде или в дате сос =)


Romul   (2002-03-12 13:02:00) [5]

Компонент InfoPower3000. Однозначно.


Леха   (2002-03-12 12:52:00) [6]

Возьми навороченные гриды и не мучайся
если не беспокоит память то перед показом считывай все данные в DataSet


Aaz   (2002-03-12 12:28:00) [7]

>Anatoly Podgoretsky
> Это нормально
Совсем даже не очень
>для того что бы скроллер мог работать необходимы следующие вещи:
> количество записей
Можно определить например так: DBGrid1.DataSource.DataSet.RecordCount
> порядковый номер записи
определяем так DBGrid1.DataSource.DataSet.RecNo

Чо дальше? Куда это все хозяйство втисуть?
------------------------------------------------
>koks
> Я слышал, что данная проблема - не в компоненте DBGrid, а в DataSource...
> Он для Dbase - таблиц некорректно определяет номер текущей записи и кол-во записей....
Ну по преведенным выше функциям он определяет все тип-топ.
> А c DBGrid-ом все OK.
Чо-то сомневаюсь ...
> Копать нужноь именно Datasource.
Опять вопрос - куда втиснуть верные данные?

PS/ Кстати, Borland"овский SQL Explorier тоже также глючит.


Bachin   (2002-03-12 12:23:00) [8]

Расставим все точки над i :)))

Проблема действительно есть, но не с DBGrid или DataSource, а с DataSet. Точно знал, что была проблема в BDEшной реализации, сейчас проверил в ODBCExpress - то же самое. Native реализация (по крайней мере Informix/INAP2) работает чисто.

проверено Delphi 3/5/6


koks   (2002-03-12 10:32:00) [9]

Я слышал, что данная проблема - не в компоненте DBGrid, а в DataSource... Он для Dbase - таблиц некорректно определяет номер текущей записи и кол-во записей.... А c DBGrid-ом все OK. Копать нужноь именно Datasource.
Для Paradox-а не знаю - пользуюсь DBase. Но (слышал, опять же) что проблема решается ТОЛЬКО сменой механизма доступа к данным или формата. Например, переход на ADO, или на C/S (Interbase).


Nest   (2002-03-12 09:27:00) [10]

2Malder ©
Ню-ню, и БДЕ дырявый и вообще WIN32...
Ты сам подумай, если такой умный, как компонент может скроллить нормально, если датасет не даёт ни номера записи корректно [ни кол-ва] ?
Люди и до тебя парились с этим, а ты вот так просто взял всё и решил - надо вылечить. Ню-ню.


Malder   (2002-03-11 23:28:00) [11]

Не, ну вы неправильно рассуждаете... мож это и нормальный режим работы грида, но это надо как-то лечить. Лично мне клиенты предъявляли претензии насчет полосы прокрутки. Да к тому же скрол колесом можно двигаться по гриду только в пределах экрана. И не говорите, что он там чего-то не знает. Это не нормально. И, имхо, просто компонет дырявый. Все никак Дельфи 6 не поставлю, там по ходу этого нет.

P.S. Кстати, у меня данная проблема была как раз с Парадоксом...


Anatoly Podgoretsky   (2002-03-11 22:04:00) [12]

Да будет тоже самое, так как выполнятся условие неопределенности, количества записей и позиции.


Shaman_Naydak   (2002-03-11 15:04:00) [13]

Народ, ну чего вы спорите.
Anatoly Podgoretsky же четко все сказал..
Это АБСОЛЮТНО нормальный режим работы грида, когда он не может определить общее количество записей или номер текущей..
в DBF-е он определить не может.
Чтобы увидеть так называемый "глюк" с парадоксовской таблицей, навесьте на нее фильтр


sniknik   (2002-03-11 11:48:00) [14]

Может дело в формате таблици. Если в заголовке Dbf нет информации о общем количестве записей то и гриду непонятно как скролинг делать? Вот он и ведет себя таким странным образом.


sniknik   (2002-03-11 11:36:00) [15]

Точно!!! С Dbf - ом глюк как и сказано. Проверил в Delphi 6. В Db нет.


Hawk2   (2002-03-11 11:13:00) [16]

А я подметил следующую вещь. Когда я использую БД dBASE или FoxPro (dbf-файлы), то DBGrid глючит и как сказано было раньше это не зависит от количества записей в базе. А когда база Paradox, то все нормально.


sniknik   (2002-03-11 11:07:00) [17]

В 6 без проблем но и когда в 5 работал не помню чтобы чтото подобное было. В 5 у меня другое было ADO глючило, при пустой таблице или если на последнюю запись встанеш давало ошибку типа предполагается операция а запись не найдена. 6-й с апдейтом это вылечил.


Malder   (2002-03-11 09:57:00) [18]

Aaz прав. По крайней мере, в Delphi 5 DBGRID странно ведет себя.
Существует данная проблема даже если данных много, да и со скроллом (с колесиком на мышке) глюки.
Сам ищу какой-нибудь компонент свободный от данной проблемы или это невозможно сделать ? Да и в Delphi 6 как с этим ?
Скажите...


Aaz   (2002-03-11 09:44:00) [19]

7000 элементов? Даже слишком много.


sniknik   (2002-03-11 08:27:00) [20]

При наполнении таблици само поправится. А вот если данных в таблице много (не умещается в трех экранах Grid-а) то это глюк. Но скорей всего у тебя просто слишком маленькая таблица.


Страницы:   1 2

Наверх

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