![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO [D7, IB6.x]
oss © (2002-12-20 10:32:00)подскажите, кто знает :( Использую АДОДатаСет, выбираю строку с условием where потом меняю ее и делаю Post, сразу выскакивает ощибка "Row cannot be located for updating. Some values may have been changed sinc it was read"
Что интерено, адо исполюзую для доступа к FireBird"у ( не надо советовать использоваь IBX или еще что-либо, мне нужно АДО)Так вот,
если при добовление записи всем полям присвоить какие-либо занчение, то этой ощибки при Update"е не будет, а если хоть одно поле останется Null, то вот тогда будет ошибка, какое бы поле не менял... ( Null остаются только не обязательные поля, не ключевые) Еще, когда меняю, то ключевые поля тоже не трогаю, меняю только текстовые значения. бьюсь уже второй день...
oss (2002-12-21 01:43:00) [1]ВОТ ОНО!!!!!!!!!!!!!
одна строчко и мне помогло
поле открытия датасета
ADIDataSet.Properties["Update Criteria"].Value:=adCriteriaKey;
что значит update"тить только по ключю !!!
а для любознательых - по умолчанию датасет делает update по всем извлеченным полям !
вообщем читайте книжки не по одному разу :)
огромное спасибо Юрий Жуков ©
sniknik (2002-12-21 00:30:00) [2]может таблицы так сделаны? по аналогу с MSSQL (а как оно там в IB6?)
fname varchar(20) NOT NULL
поле fname нельзя оставлять пустым, обязательно значение.
и потом если пользоватся INSERT/UPDETE то ничего не стоит и "" вместо NULL задать.
oss (2002-12-20 23:39:00) [3]уважаемые, я со многими из вас согласен, я и сам не первый год работаю и с делфи и с базами, да и с адо тоже...
но нагорело как-то., особо обращаю внимание на то, что если "всем полям присвоить какие-либо занчение" пусть даже что-то вроде :="", то все работает отлично !, а если останется NULL, да еще упаси Бог в текстовом поле, то полный п...ц.
Юрий Жуков (2002-12-20 16:05:00) [4]Бегом на королевство делфи и читать, читать, читать:
http://www.delphikingdom.com/helloworld/ado01.htm
http://www.delphikingdom.com/helloworld/ado02.htm
http://www.delphikingdom.com/helloworld/ado03.htm
Prooksius (2002-12-20 14:25:00) [5]2 oss © (20.12.02 10:32)
Ну вот, сделай по совету sniknik © (20.12.02 11:29)
Получится что-то типа UpdateSQL. То есть select ты посылаешь (и фетчишь) с помошью ADODataSet, а изменения - ADOCommand.
Никаких глюков не должно быть.
SergeyRSA (2002-12-20 13:58:00) [6]По-мойму надо в locktype в AdoDataset вместо ltOptimistic
поставить ltBatchOptimistic.
sniknik (2002-12-20 11:29:00) [7]Посылать самому
ADOCommand.CommandText:= "INSERT ....
ADOCommand.Execute;
после того как стал сам регулировать изменения/транзакции/и т.д. через запросы не полагаясь на компоненты (ведь все одно неявно делают то же самое) избавился от 99.9% глюков(?) и непоняток.
глюк с вопросом потому что это не глюки на самом деле а незнание специфики работы самих компонент. (кому они нужны)
Prooksius (2002-12-20 10:55:00) [8]И можно ли влиять на формирование запроса на изменение в ADO?
Prooksius (2002-12-20 10:51:00) [9]А как в ADO реализовано изменение данных (update, delete)?
Какой посылается запрос на сервер, как он формируется?
Никогда не работал с ADO, но вижу, что никто помочь не хочет/не знает как. :)