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

Вниз

Глюк 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
1-9537
Vacheslav
2002-03-23 19:23
2002.04.04
Как в чужую программу добавить свой пункт меню?


14-9609
Tosov
2002-02-20 09:01
2002.04.04
Является ли файл архивом?


1-9565
Erlend
2002-03-22 08:37
2002.04.04
IDE


1-9485
USAtyj
2002-03-25 18:19
2002.04.04
Идею не подскажете!?


3-9409
Dima Kopachev
2002-03-10 15:19
2002.04.04
Ошибка General SQL error