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

Вниз

Прокрутка в DBGrid   Найти похожие ветки 

 
eugie   (2003-03-21 08:55) [0]

Уважаемые Мастера! Расскажите, если кто знает, можно ли сделать так, чтобы при прокручивании списка в DBGrid с помощью полосы выртикальной прокрутки курсор в наборе данных не перемещался с текущей записи (оставлся на месте), пока его пользователь не переведет принудительно, например щелкнув в одной из ячеек DBGridа ли нажав на клавиши управления курсором? Спасибо.


 
Dmitry Filippov   (2003-03-21 09:37) [1]

По моему это не правильно, что это, юзер видит уже 12334 запись, вызывает какую нибудь операцию и изменяет 4-ю, на которой стоит курсор, гибкость или изощьренность имеет и обратную сторону, т.е. прямо пропорционально оплеухам и ошибкам.


 
Соловьев   (2003-03-21 09:47) [2]

вообще-то DBGrid только для локальных БД, так как использование в сетевых БД неоправдывается - однонаправленные курсоры... Сидит пользователь и тягает себе ползунок взад- вперед, а сервак при этом загибается. Повбывав бы... :))))


 
ЮЮ   (2003-03-21 09:55) [3]

>юзер видит уже 12334 запись

и тех, кто в локалке вываливает юзеру столько строк "Повбывав бы" :-)


 
Dmitry Filippov   (2003-03-21 09:57) [4]

Соловьев

А зачем использовать однонаправленные курсоры?
В этом случае нужно кэшировать записи, а некоторые данные спрашивать только один раз или по мере изменения, в прочем это особенность архитектуры приложения.


 
Dmitry Filippov   (2003-03-21 09:59) [5]

ЮЮ

Узер и сам способен так спросить, хотя за это ...


 
KSergey   (2003-03-21 11:03) [6]

> Соловьев © (21.03.03 09:47)
> вообще-то DBGrid только для локальных БД, так как


Вот это новости!!

использование
> в сетевых БД неоправдывается - однонаправленные курсоры...
> Сидит пользователь и тягает себе ползунок взад- вперед,
> а сервак при этом загибается. Повбывав бы... :))))

А может разработчиков таких ну хотя бы поколотить слегка? Штобы к тому же глупостей не постили.


 
Соловьев   (2003-03-21 11:09) [7]

я на писал, что DBGrid не опрадано для сетех БД, а не то что только локальных БД. Не надо перекручивать пост. Типа "казнить нельзя помиловать"....


 
eugie   (2003-03-21 11:15) [8]

Коллеги! А можно что-нибудь конкретно по вопросу?


 
Alexander Vasjuk   (2003-03-21 13:21) [9]

Соловьев © (21.03.03 11:09)
Даже в случае однонаправленных наборов и кеширования DBGrid остается удобным инструментом. То есть он к технологии вытаскивания данных как бы ни при чем.

eugie © (21.03.03 11:15)
Я думаю, в твоем случае, если ты таки сильно этого хочешь, перекрой OnDrawDataCell и сам выделяй не текущую запись, а помеченную, и при работе с ней сначала выбери ее.


 
Johnmen   (2003-03-21 13:33) [10]

>Даже в случае однонаправленных наборов и кеширования DBGrid >остается удобным инструментом

Нет. Т.к. DBGrid с однонаправленными наборами не работает...


 
Alexander Vasjuk   (2003-03-21 14:43) [11]

Johnmen © (21.03.03 13:33)
Нет. Т.к.:
Если к 1направленному набору прицепить скажем ClientDataSet, который собственно и кеширует данные, DBGrid прекрасно работает.


 
Johnmen   (2003-03-21 14:57) [12]

>Alexander Vasjuk (21.03.03 14:43)

Я не понял возражения !
Еще раз повторю :
DBGrid с однонаправленными наборами не работает !И добавлю :
DBGrid с двунаправленными наборами работает (коем и является TClientDataSet)


 
Alexander Vasjuk   (2003-03-21 15:09) [13]

Johnmen © (21.03.03 14:57)
DBGrid с однонаправленными наборами не работает !И добавлю :
DBGrid с двунаправленными наборами работает (коем и является TClientDataSet)

, который, в свою очередь, берет данные из однонаправленного набора на сервере (и кеширует их на клиенте).
Таким образом DBGrid фактически работает с данными, взятыми из однонаправленного набора.

Если это спорно, вернемся, с чего все началось:

Соловьев © (21.03.03 09:47)
вообще-то DBGrid только для локальных БД, так как использование в сетевых БД неоправдывается - однонаправленные курсоры... Сидит пользователь и тягает себе ползунок взад- вперед, а сервак при этом загибается. Повбывав бы... :))))


DBGrid вполне оправдывается для работы в сетевых БД. Одно- или unidirect. Более того, это самый естественный интерфейс (таблица, сетка).


 
Johnmen   (2003-03-21 15:22) [14]

Ну какая здесь разница, откуда кто что берет ???!!!!
Таким образом DBGrid фактически работает с данными
из того НД, на который указывает соотв.свойство !!!
Или ты решил просто поиздеваться ?


 
Alexander Vasjuk   (2003-03-21 15:33) [15]

Johnmen © (21.03.03 15:22)
Давай не переходить на оскорбления, ок? Правда дороже :)

Теперь отвечаю...
DBGrid работает со свойством данные формально. А именно фактически это данные удаленного набора.

Наверно, у тебя DBGrid глюканул с DBExpress, и ты решил, что они несовместимы.А теперь цепляешься за слова, фактически, практически...

Скажи, а как ты работаешь с однонаправленными наборами?
И вообще, работаешь?


 
Johnmen   (2003-03-21 15:42) [16]

>И вообще, работаешь?

Да.


>Наверно, у тебя DBGrid глюканул с DBExpress, и ты решил, что >они несовместимы

Кто(или что?) они ???


 
Alexander Vasjuk   (2003-03-21 15:55) [17]

DBGrid и DBExpress

Да? Странно. И как ты визуализируешь данные?


 
Johnmen   (2003-03-21 16:02) [18]

Однонаправленные не визуализирую. Они мне нужны для другого.
Двунаправленные - визуализирую.


 
Alexander Vasjuk   (2003-03-21 16:08) [19]

А двунаправленные - с сервера?


 
Johnmen   (2003-03-21 16:13) [20]

>А двунаправленные - с сервера?

А что, это так важно ? Для тебя ?


 
Alexander Vasjuk   (2003-03-21 16:28) [21]

Да, это к разговору.
Ответь, пожалуйста.
Двунаправленные у тебя с сервера?
И как ты их визуализируешь?


 
Johnmen   (2003-03-21 16:36) [22]

>Двунаправленные у тебя с сервера?

Объясни, пожалуйста, в чем принципиальная разница, с сервера или еще откуда ?

>И как ты их визуализируешь?

С помощью чего ? С помощью, TDBGrid, например.


 
Alexander Vasjuk   (2003-03-21 16:50) [23]

А та разница, что раз ты показываешь двунаправленные данные с сервера с помощью TDBGrid, то ты сам себе противоречишь.
т.е. сам себя поббыв бы...


 
Johnmen   (2003-03-21 16:59) [24]

Я тут почитал еще несколько веток с твоим участием...
Я прекращаю всякие дискуссии с тобой. Прошу извинить, если обидел...


 
Alexander Vasjuk   (2003-03-21 17:10) [25]

Бог простит. Ты извини.

Странно, я тебя не оскорблял и вел себя корректно, не кричал.
Как и в прочих ветках.

По моему ты просто увидел, что не прав и убегаешь.

А сервер все таки ты гридом мучаешь! (я кстати тоже, но я и не критикую)


 
JibSkeart   (2003-03-21 17:21) [26]

Alexander Vasjuk (21.03.03 17:10)
Может я что то недопонял но может обьяснишь как
это сервер DBGrid-ом мучаешь ??

Ты открой SQLProfiler и посмотри что ничего
неуходит и неприходит от грида(грубо говоря) и сервака
когда ты курсором балуешся туды сюды ...

Если я что то недопонял сильно меня не пинать :)


 
Alexander Vasjuk   (2003-03-21 17:28) [27]

JibSkeart © (21.03.03 17:21)
Это я без квотинга процитировал:
Соловьев © (21.03.03 09:47)
вообще-то DBGrid только для локальных БД, так как использование в сетевых БД неоправдывается - однонаправленные курсоры... Сидит пользователь и тягает себе ползунок взад- вперед, а сервак при этом загибается. Повбывав бы... :))))


 
Dred2k   (2003-03-22 17:33) [28]

2 eugie

Да, круто ты всех завел! ;))
Чтобы сделать так, как ты хочешь, нужно частично переписать сам компонент. Внимательно его изучи вместе с предками. Посмотри, как и где обрабатываются события прокрутки, где двигается датасет (поможет простой поиск типа ".Next" + долгие размышления).
Причем размышления на тему "На кой это надо"!
Очень странная задача...
Так и полоску среди записей потерять не долго....
;))


 
eugie   (2003-03-23 05:55) [29]

To ALL

Мой вопрос возник из-за пожеланий пользователей.
Возможность, о которой я упомянул в вопросе реализована, например, в MS Access.
Но в любом случае ВСЕМ спасибо за оживленную дискуссию!


 
Desdechado   (2003-03-24 21:09) [30]

если в гриде сделать multiselect, то курсор физически стоит в датасете на последней выбранной, а в гриде гуляет где попросишь


 
eugie   (2003-03-25 08:18) [31]

>Desdechado

Пробовал - не работает.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.009 c
7-44481
nw
2003-02-06 02:31
2003.04.14
Серийный номер дискеты, cd или ешшо какого-нибудь накопителя


3-43996
Andrey007
2003-03-24 16:57
2003.04.14
Как уменьшить время при заполнении таблиц?


3-44027
Pontic
2003-03-25 17:43
2003.04.14
Alias для Interbase


1-44233
travnikOFF
2003-04-02 05:20
2003.04.14
Плейлист


14-44452
kostya2000
2003-03-25 20:01
2003.04.14
Люди, загадка:





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