Форум: "Базы";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
ВнизГлюк DBGrid? Найти похожие ветки
← →
Aaz (2002-03-11 07:21) [0]Странно, но полоса прокрутки имеет всего три положения - начало, середина конец. При прокрутке стоит на середине. Это глюк DBGrid или моих корявых ручек?
← →
Anatoly Podgoretsky (2002-03-11 07:56) [1]Это нормально, для того что бы скроллер мог работать необходимы следующие веши: количество записей, порядковый номер записи - этого для таблиц нет
← →
Aaz (2002-03-11 08:17) [2]В таком случае как это можно поправить?
← →
sniknik (2002-03-11 08:27) [3]При наполнении таблици само поправится. А вот если данных в таблице много (не умещается в трех экранах Grid-а) то это глюк. Но скорей всего у тебя просто слишком маленькая таблица.
← →
Aaz (2002-03-11 09:44) [4]7000 элементов? Даже слишком много.
← →
Malder (2002-03-11 09:57) [5]Aaz прав. По крайней мере, в Delphi 5 DBGRID странно ведет себя.
Существует данная проблема даже если данных много, да и со скроллом (с колесиком на мышке) глюки.
Сам ищу какой-нибудь компонент свободный от данной проблемы или это невозможно сделать ? Да и в Delphi 6 как с этим ?
Скажите...
← →
sniknik (2002-03-11 11:07) [6]В 6 без проблем но и когда в 5 работал не помню чтобы чтото подобное было. В 5 у меня другое было ADO глючило, при пустой таблице или если на последнюю запись встанеш давало ошибку типа предполагается операция а запись не найдена. 6-й с апдейтом это вылечил.
← →
Hawk2 (2002-03-11 11:13) [7]А я подметил следующую вещь. Когда я использую БД dBASE или FoxPro (dbf-файлы), то DBGrid глючит и как сказано было раньше это не зависит от количества записей в базе. А когда база Paradox, то все нормально.
← →
sniknik (2002-03-11 11:36) [8]Точно!!! С Dbf - ом глюк как и сказано. Проверил в Delphi 6. В Db нет.
← →
sniknik (2002-03-11 11:48) [9]Может дело в формате таблици. Если в заголовке Dbf нет информации о общем количестве записей то и гриду непонятно как скролинг делать? Вот он и ведет себя таким странным образом.
← →
Shaman_Naydak (2002-03-11 15:04) [10]Народ, ну чего вы спорите.
Anatoly Podgoretsky же четко все сказал..
Это АБСОЛЮТНО нормальный режим работы грида, когда он не может определить общее количество записей или номер текущей..
в DBF-е он определить не может.
Чтобы увидеть так называемый "глюк" с парадоксовской таблицей, навесьте на нее фильтр
← →
Anatoly Podgoretsky (2002-03-11 22:04) [11]Да будет тоже самое, так как выполнятся условие неопределенности, количества записей и позиции.
← →
Malder (2002-03-11 23:28) [12]Не, ну вы неправильно рассуждаете... мож это и нормальный режим работы грида, но это надо как-то лечить. Лично мне клиенты предъявляли претензии насчет полосы прокрутки. Да к тому же скрол колесом можно двигаться по гриду только в пределах экрана. И не говорите, что он там чего-то не знает. Это не нормально. И, имхо, просто компонет дырявый. Все никак Дельфи 6 не поставлю, там по ходу этого нет.
P.S. Кстати, у меня данная проблема была как раз с Парадоксом...
← →
Nest (2002-03-12 09:27) [13]2Malder ©
Ню-ню, и БДЕ дырявый и вообще WIN32...
Ты сам подумай, если такой умный, как компонент может скроллить нормально, если датасет не даёт ни номера записи корректно [ни кол-ва] ?
Люди и до тебя парились с этим, а ты вот так просто взял всё и решил - надо вылечить. Ню-ню.
← →
koks (2002-03-12 10:32) [14]Я слышал, что данная проблема - не в компоненте DBGrid, а в DataSource... Он для Dbase - таблиц некорректно определяет номер текущей записи и кол-во записей.... А c DBGrid-ом все OK. Копать нужноь именно Datasource.
Для Paradox-а не знаю - пользуюсь DBase. Но (слышал, опять же) что проблема решается ТОЛЬКО сменой механизма доступа к данным или формата. Например, переход на ADO, или на C/S (Interbase).
← →
Bachin (2002-03-12 12:23) [15]Расставим все точки над i :)))
Проблема действительно есть, но не с DBGrid или DataSource, а с DataSet. Точно знал, что была проблема в BDEшной реализации, сейчас проверил в ODBCExpress - то же самое. Native реализация (по крайней мере Informix/INAP2) работает чисто.
проверено Delphi 3/5/6
← →
Aaz (2002-03-12 12:28) [16]>Anatoly Podgoretsky
> Это нормально
Совсем даже не очень
>для того что бы скроллер мог работать необходимы следующие вещи:
> количество записей
Можно определить например так: DBGrid1.DataSource.DataSet.RecordCount
> порядковый номер записи
определяем так DBGrid1.DataSource.DataSet.RecNo
Чо дальше? Куда это все хозяйство втисуть?
------------------------------------------------
>koks
> Я слышал, что данная проблема - не в компоненте DBGrid, а в DataSource...
> Он для Dbase - таблиц некорректно определяет номер текущей записи и кол-во записей....
Ну по преведенным выше функциям он определяет все тип-топ.
> А c DBGrid-ом все OK.
Чо-то сомневаюсь ...
> Копать нужноь именно Datasource.
Опять вопрос - куда втиснуть верные данные?
PS/ Кстати, Borland"овский SQL Explorier тоже также глючит.
← →
Леха (2002-03-12 12:52) [17]Возьми навороченные гриды и не мучайся
если не беспокоит память то перед показом считывай все данные в DataSet
← →
Romul (2002-03-12 13:02) [18]Компонент InfoPower3000. Однозначно.
← →
Malder (2002-03-12 15:03) [19]Nest, просто видел базы данных у которого такого нет.
Ну то есть видел программу, в котором была куча записей, можно добавлять, удалять, фильтровать ну и т.д. Все это было в гриде. И проблем не было. Может она конечно не базы использовала, а текстовый файл... только навряд ли. И была эта программа локальная. Вот так. Значит, думаю, просто недоработка в гриде или в дате сос =)
← →
Lusha (2002-03-12 15:27) [20]>Bachin
Дело не в DataSource
>Malder
Посмотрите исходники процедуры TCustomDBGrid.UpdateScrollBar. Там все весьма лаконично написано.
>Aaz
Просто написать свою процедуру UpdateScrollBar у TDBGrid, где самому определять внешний вид ScrollBar исходя из имеющихся у Вас данных и все дела... :-)
И всем вместе. Внимательно слушайте, что Вам говорят. В частности то, что говорили Anatoly Podgoretsky и Shaman_Naydak...
P.S.
>Moderator
А почему этот флейм до сих пор не в разделе "Потрепаться"? :-)
← →
Anatoly Podgoretsky (2002-03-12 22:08) [21]koks © (12.03.02 10:32)
Aaz (12.03.02 12:28)
Все корректно, только это не тот номер, который нужен скроллеру, ему нужен порядковый номер записи полученного _набора_
RecNo это физический номер записи в таблице.
Нужно ли еще какие либо объяснения.
← →
panov (2002-03-12 22:20) [22]>Lusha © (12.03.02 15:27)
потому что все высказывания по теме, и на личные споры никто не перешел...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c