![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
можно ли обновить одну строку запроса? [MSSQL]
Bless © (2003-11-25 16:31:00)
сабж.
Bless (2003-11-26 12:47:00) [1]
Понятно. Спасибо.
ZrenBy (2003-11-26 12:08:00) [2]
>>А где можно прочитать о том, что реализуют те или иные
>>функции, предоставленные интерфейсом ADO?
Мельком видел книгу "ADO в Delphi", хотел купить,
а на следующий день уже не было. А так MSDN
>>А данные с помощью чего отображаешь? Самописными компонентами?
Ага
>>Что такое "текущая запись" и что такое "курсор"?
Ну, тут надо договориться о терминах. Я просто хотел
сказать, что текущая запись в ADODataSet в его буфере не
совпадает с AbsolutePosition ADO-шного рекордсета,
поэтому и нужен ADODataset.UpdateCursorPos
Bless (2003-11-26 11:42:00) [3]
Четко и ясно. Спасибо.
А где можно прочитать о том, что реализуют те или иные функции, предоставленные интерфейсом ADO?
>я уже давно не использую
>TADO-компоненты, а работаю напрямую с интерфейсами ADO
Это как? А данные с помощью чего отображаешь? Самописными компонентами?
>В TADO-компонентах всегда
А в чём не всегда, объясни, если не трудно. Я всегда думал, что текущая запись - это та, на которую указывает курсор. Поэтому я не понимаю, как может курсор указывать не на текущую запись. Наверное, я думал неправильно. А как правильно? Что такое "текущая запись" и что такое "курсор"?
ZrenBy (2003-11-26 10:35:00) [4]
>>Bless (26.11.03 10:03) [8]
1) Resync`и бывают разные - ado-шные и TADO-шные.
Первый делает нормальный ресинк рекордсета,
а второй нужен, чтобы этот измененный рекордсет закачать
в буфер TCustomDataSet-а или как там его.
2)Это не ко мне. Когда я впервые задал себе подобный вопрос,
то ответ пришел мгновенно - я уже давно не использую
TADO-компоненты, а работаю напрямую с интерфейсами ADO.
3) >>курсор не совпадает с текущей записью?
В TADO-компонентах всегда
Bless (2003-11-26 10:03:00) [5]
TO ZrenBy[5]> А не мог бы ты объяснить, что делают вторая и третья строка? А именно:
1) зачем нужны resync и во второй, и в третьей строках?
2) зачем нужен rmExact? Ведь мы строчкой UpdateCursorPos гарантировали, что курсор позиционирован на текущую запись.
И вообще, в каких случаях может быть, что курсор не совпадает с текущей записью?
Bless (2003-11-26 09:08:00) [6]
TO ZrenBy> Спасибо. Попробую
yurchello (2003-11-25 21:01:00) [7]
ХЕЛП! спасайте. База PostgreSQL,
Проблема - через ADO добавляю строчку в таблицу - ни в какую не хочет обновлять автоинкримент поле!!!.
Properties["Update Resync"].Value:= adResyncAll;
(см. http://www.delphikingdom.com/helloworld/ado02.htm)
никаких результатов не даёт. непомогает и
ADODataset1.UpdateCursorPos;
ADODataset1.Recordset.Resync(adAffectCurrent,adResyncAllValues);
ADODataset1.Resync([rmExact]);
При повторном редактировании добавленной строки выдаёт
Row cannot be located for updating ..... ..
Что делатЬ? базу менять?
ZrenBy (2003-11-25 17:58:00) [8]
>>но как он может помочь инициировать обновление одной строки?
uses ...,ADOInt;
ADODataset1.UpdateCursorPos;
ADODataset1.Recordset.Resync(adAffectCurrent,adResyncAllValues);
ADODataset1.Resync([rmExact]);
Bless (2003-11-25 17:36:00) [9]
Stas [3]> :) Эту широко разрекламированную статью я уже читал и даже использую с большой для себя пользой. Но это не тот случай.
Update resync влияет на то, какие поля будут обновлены в результате обновления строки, но как он может помочь инициировать обновление одной строки?
>А вот в Оракле, который отдыхает, - можно.
Радость за оракл и всех, кто на нем пишет меня просто распирает.
И я посыпаю голову пеплом за то, что выбор мой (точнее, не совсем мой. А если абсолютно точно - вообще не мой) пал на MSSQL. Жаль только, это не помогает решить проблемку.
Stas (2003-11-25 16:37:00) [10]
ADODataSet1.Properties["Update Resync"].Value:= adResyncAll;
см. http://www.delphikingdom.com/helloworld/ado02.htm
VAleksey (2003-11-25 16:35:00) [11]
Как вариант, можно извратится повторным запросом строки и модифицировать ее на клиенте.
Reindeer Moss Eater (2003-11-25 16:33:00) [12]
А вот в Оракле, который отдыхает, - можно.
:)