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

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

Так всё-таки: как DB-шные компоненты работают с TDataSet? [D5]


Ega23 ©   (2005-06-02 19:50:00) 

Вот, допустим, DBGrid. Ему "присандалили" какой-то DataSource.
Надо отрисовать данные, причём не текущей строки, а вообще, всё что на экран влезет.
Как я понял из исходников, методами самого DataSet-а (имею ввиду First, Next, Prior etc.) для считывания данных после обновления DBGrid не пользуется. Иначе курсор бы двигался. А вот как он эти данные берёт, я что-то не въехал.
Объясните, как оно работает????


Ega23   (2005-06-03 11:49:00) [1]

TDataSource.NotifyDataLinks(Event: TDataEvent; Info: Longint)

О! То что нужно. Пожалуй, дальше сам разберусь.

Всем ОГРОМНОЕ СПАСИБО!


Bronco   (2005-06-03 11:41:00) [2]


> Ega23 ©   (03.06.05 11:17) [9]
> ДатаЛинк - для внутреннего пользования...
>
> Это я понял. Не совсем ясно, откуда там берутся данные после
> обновления датасета?

На сколько я понял из исходников, DataSource в себе содержит FDataLinks, т.е. список подключенных к нему DataLink-ов от разных контролов. Обновление производится методом
TDataSource.NotifyDataLinks(Event: TDataEvent; Info: Longint)


Danilka   (2005-06-03 11:23:00) [3]

[9] Ega23 ©   (03.06.05 11:17)
Просто интересно, ты сам хочешь аналог ДатаЛинка написать, или наоборот, хочешь им воспользоваться для каких-то своих компонент, не детей от стандартных, и поэтому интересно как он работает?


Johnmen   (2005-06-03 11:22:00) [4]

Как откуда ? Через источник данных из набора данных.
Как берутся ? Ответ в исходниках.


Ega23   (2005-06-03 11:17:00) [5]

ДатаЛинк - для внутреннего пользования...

Это я понял. Не совсем ясно, откуда там берутся данные после обновления датасета?


Johnmen   (2005-06-03 11:15:00) [6]

ДатаЛинк - для внутреннего пользования...


Ega23   (2005-06-03 11:02:00) [7]

Тогда последний вопрос: при обновлении DataSet'а данные в DataLink будут рефрешится сами, или это надо делать принудительно?
В VCL наткнулся, что DataLink регистрирует себя в DataSourc'е. Глубже пока не копнул...


Johnmen   (2005-06-03 10:58:00) [8]

>Ega23 ©   (03.06.05 09:56) [5]

TDataLink это буфер отображаемых записей.
Посмотри ActiveRecord+F1 :)))


Ega23   (2005-06-03 09:56:00) [9]

Т.е., насколько я понял, TDataLink - это и есть буффер данных DataSet'а? И с помощью DataLink.ActiveRecord я могу получить доступ к активной записи?


pasha_golub   (2005-06-02 20:49:00) [10]

Олегыч, копай дальше... :0)


Petr V. Abramov   (2005-06-02 20:46:00) [11]

см. TGridDataLink


sniknik   (2005-06-02 20:16:00) [12]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1115803308&n=1
думаю будет интересно ;о))


Anatoly Podgoretsky   (2005-06-02 20:04:00) [13]

Наблидение за внешними проявлениями не верный метод.
Для этого есть исходники.


Наверх

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