![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не удается избавиться от ошибки "Не удалось найти строку..." ADO [D7, MSSQL]
Aleksandr. © (2004-11-22 14:12:00)Таблица на MS SQL имеет одно из полей со значением по умолчанию. Соответственно, при редактировании через ADOQuery после Post возникает ошибка "Не удалось найти строку для обновления". Я этому ADOQuery на AfterOpen сделал
TADOQuery(DataSet).Properties['Update Resync'].Value:=adResyncAll
и все равно не помогает. Ключевое поле в таблице есть. Чем еще можно это лечить?
Reindeer Moss Eater (2004-11-23 10:06:00) [1]Если есть TField, до при вставке записи на сервер улетает insert, содержащий в списке полей поле TField.
(Кроме пожалуй случая c BDE + TUpdateSQL)
И дефолт значение у физ. поля отдыхает.
Не так?
KSergey (2004-11-23 09:58:00) [2]Да, забыл добавить: посоветовать что-то конкретное в таких случаях - нельзя. Только натурные эксперименты позволят подобрать приемлемое решение в конкретных условиях.
KSergey (2004-11-23 09:56:00) [3]> [3] Reindeer Moss Eater © (23.11.04 09:21)
> Если у тебя в датасете есть экземпляр TField для этого поля,
> то ни о каком срабатывании DEFAULT констрейнта не может
> быть и речи.
Наглый обман трудового населения ;)
Скорее тогда уж зависит от MarshalOptions.
К стати, экземпляр TField после открытия DataSet есть всегда, согласитесь.
> Aleksandr. (22.11.04 14:12)
Дочитайте все 3 статьи
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=408
Вообще - это шаманство чистейшей воды заставить ADO корректно все делать. Уж поверьте ;) Но можно ;)
Reindeer Moss Eater (2004-11-23 09:21:00) [4]Если у тебя в датасете есть экземпляр TField для этого поля, то ни о каком срабатывании DEFAULT констрейнта не может быть и речи.
Aleksandr. (2004-11-22 17:11:00) [5]Reindeer Moss Eater © :
Согласно описанию, если при изменениях опускаешь поле со значением по умолчанию, АДО может дать такую ошибку, т.к., например, поле2 в выражении попадает в WHERE Поле2=NULL,
а у сервера оно уже будет иметь значение по умолчанию.
Reindeer Moss Eater (2004-11-22 15:26:00) [6]Ну а при чем здесь вообще поле со значением по умолчанию?