Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
14-9647
Aleks1
2002-02-25 03:30
2002.04.04
Климат в Москве


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


1-9553
qas
2002-03-23 11:41
2002.04.04
TreeView


1-9484
snoup
2002-03-25 19:57
2002.04.04
Как с помощью таймера и лебела сделать сикундомер?


1-9516
Sound
2002-03-23 01:46
2002.04.04
КТО НИБУДЬ!!! ВОПРОС!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский