Текущий архив: 2004.11.21;
Скачать: CL | DM;
ВнизОбновление базы данных с помощью UpdateSQL Найти похожие ветки
← →
Robin Hood (2004-10-24 22:19) [0]У меня проблема. Поместил на форме Query, UpdateSQL. Поставил у Query
UpdateObject UpdateSQL. Сгенерировал SQL для UpdateSQL.
Поставил Query.CachedUpdate:=true;Query.RequestLive:=true;
Значение у Query CanModify стоит True.
Для открытия Query использоал Open.
Поставил кнопку с событием OnClick
with QueryRab do
begin
if State in [dsEdit,dsInsert] then
Post;
ApplyUpdates;
CommitUpdates;
end;
Если изменяю первую строку в таблице и жму кнопку работает нормально.
Если любую другую появляется сообщение
"exception class EDatabaseError with message "Update failed""
и не изменяет данные в базе данных.
Подскажите что делать.
← →
ЮЮ © (2004-10-25 02:59) [1]Покажи текст запроса на Update
← →
Robin Hood (2004-10-25 08:40) [2]на Query:
select * from bz where GOD="2004" Order By FAM
на UpdateSQL, ModifySQL:
update bz
set
FAM = :FAM,
IMIA = :IMIA,
OTCH = :OTCH,
CLAS = :CLAS,
GOD = :GOD
where
FAM = :OLD_FAM and
IMIA = :OLD_IMIA and
OTCH = :OLD_OTCH and
CLAS = :OLD_CLAS and
GOD = :OLD_GOD
← →
ЮЮ © (2004-10-25 09:05) [3]Условие в where доджно возвращать ровно ОДНО значение, что возможно обеспечивается созжанием уникального индекса по этип полям. Если одно из полей до редактирования NULL, то такой запрос не вернет записи для редактирования. Поставь в Where поля, образующие первичный ключ.
← →
asp © (2004-10-25 09:28) [4]
Query.RequestLive:=true
в данном случае нет необходимости.
← →
Robin Hood (2004-10-25 21:37) [5]оставил:
update bz
set
IMIA = :IMIA,
OTCH = :OTCH,
CLAS = :CLAS,
GOD = :GOD
where
FAM = :OLD_FAM
но всё равно не работает
у меня Query.Fields.FieldByName("FAM").IsNull стоит false
если значение KeyFields это "поля, образующие первичный ключ" то FAM у меня стоит в KeyFields
"обеспечивается созжанием уникального индекса по этип полям" как в Table создавать их я знаю. А как в Query?
← →
ЮЮ © (2004-10-26 02:44) [6]>обеспечивается созжанием уникального индекса по этип полям как в Table создавать их я знаю. А как в Query?
уникальный индекс создается на физическом уровне, неважно TTable или TQuery используется.
where
FAM = :OLD_FAM
вряд ли первичный ключ создан по FAM - однофамильцы не редкость. У тебя есть, вообще, ключевое поле? Как ты связываешь другие таблицы с этой?
Страницы: 1 вся ветка
Текущий архив: 2004.11.21;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.038 c