![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление ADODataset [D6, MSSQL]
KSK © (2005-08-30 16:22:00)Уважаемые мастера, в одной из статей прочитал что можно использовать свойство Update Resync для обновления данных, пример там такой: ADODataSet1.Properties['Update Resync'].Value:= adResyncAutoIncrement + adResyncInserts.
Но так как я понял - это можно обновить текущую запись.
Вопрос такой - как можно обновить строку данных не перемещая курсор, зная значение ключевого поля?
Спасибо за помощь.
sniknik (2005-09-01 08:35:00) [1]> Вопрос как работает Lookup - он же не перемещает курсор?
перемещает, только после работы возвращает на место, все так делают, если конечно не кешируют (тоже вариант) результат выборки гдето у себя "унутрях", тогда только на первом доступе "закачке в кеш" чтото меняется о оригинальном рекордсете.
KSK (2005-08-31 12:37:00) [2]Спасибо за ответ, так получается когда не задам вопрос на форум Вы всегда даёте советы, которые мне помогли в многих проблемах.
> для обновления данных в строке есть другое свойство - Resync
> Command, но оно тоже не даст возможности обновлятся не перемещая
> курсор
С Update Resync и с Resync Comman я нимного поэксперементировал.
Вопрос как работает Lookup - он же не перемещает курсор?
А обновление я сделал ADODataSet.Recordset.Resynс().
sniknik (2005-08-31 00:24:00) [3]вообщето это немного не то, этим ты даеш понять набору данных, что надо перезапрашивать значение автоинкремента и записи (поля формирующиеся на сервере/дефаултные) при инсерте (добавлении записи).
для обновления данных в строке есть другое свойство - Resync Command, но оно тоже не даст возможности обновлятся не перемещая курсор.
курсор это своего рода индекс в датасете, не перемещая, не получиш нужной позиции, ни для записи, ни для чтения... вот задание "на дом" аналогичное, сделай массив (любой), задай переменную (iPos к примеру), после, допусти что только через iPos ты будеш обращатся к своему массиву (MyMas[iPos]:= ), и никак иначе. а теперь присвой iPos значение 0, и не меняя запиши чтонибудь в ячейке 5 массива...
и усложнение. "заверни" массив в класс, сделай методы которые чисто условный "допуск" прошлого задания превратят в правила, и ты получиш некое подобие рекордсета/курсора. (но только для демонстрации именно этого. и на на что другое совсем непохожее ;)