Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
ВнизА удалить запись не получается. Найти похожие ветки
← →
Drowsy (2009-03-05 10:31) [0]Не форме грид и TIBDataSet со стандартными Sql - операторами на просмотр и редактирование.
Старт транзакции -> вызов формы редактирования -> коммитретэйн.
Получается, что инсерты и редактирование фиксируются в базе,
а делиты никак.
Не понимаю почему.
Растолкуйте, пожалста.
← →
Сергей М. © (2009-03-05 10:35) [1]Значит WHERE-условие в DELETE-предложении не выполняется - запись для удаления попросту не локализована сервером при выполнении запроса на удаление.
← →
anonims (2009-03-05 10:38) [2]до процедуры удаления дело не доходит
в SQL запросе на удаление есть ошибка
Сервер отказал по соображениям целостность БД
выбирай что больще подходит
← →
Drowsy (2009-03-05 10:48) [3]как не может дойти до удаления?
запрос простой :
delete from MAIN
where
PRID = :OLD_PRID and
LAY4_CODE_ID = :OLD_LAY4_CODE_ID and
PR_NAME = :OLD_PR_NAME and
PR_CR_DATA = :OLD_PR_CR_DATA and
PR_TYPE = :OLD_PR_TYPE
В базе одна таблица пока и целостность её несомненна. :)
← →
Сергей М. © (2009-03-05 10:50) [4]
> anonims (05.03.09 10:38) [2]
Первое еще как-то вероятно.
А второе и третье обязано вызвать исключение - автор бы это сразу прочувствовал, если он, конечно же, не давит исключения на корню не разбираясь
← →
Drowsy (2009-03-05 10:54) [5]Исключени при кривых sql -кодах вываливаются исправно. в ом числе и при делейт - скюэле.
У меня DBGridEh.
Может он как-то хитро работает при удалении.
← →
Сергей М. © (2009-03-05 10:55) [6]
> Drowsy (05.03.09 10:48) [3]
А что, для удаления требуется именно такое сложное WHERE-условие ?
Указания PRID удаляемой записи разве не достаточно ?
← →
Drowsy (2009-03-05 10:57) [7]..... а всё равно не удаляет.
← →
Сергей М. © (2009-03-05 11:00) [8]Транзакция тобой при этом точно подверждается ?
← →
Drowsy (2009-03-05 11:02) [9]да. и всё другое, кроме делита работает.
Я пробовал даже дополнительной транзакцией обернуть удаление (есть ли кстати, в этом смысл),
before delete ->starttransaction/
after delete -> commit.
← →
Сергей М. © (2009-03-05 11:16) [10]
> есть ли кстати, в этом смысл
Вряд ли.
В большинстве случаев достаточно 2-х ТА - одна на чтение, другая на любую модификацию.
Вставь в триггер на удаление любое отладочное действие и убедись в том что запрос доходит до сервера в ожидаемом тобой виде
← →
Сергей М. © (2009-03-05 11:22) [11]И, меж прочим, на той же вкладке палитры есть компонент TIBSQLMonitor - воспользуйся им для проверки уходит ли запрос на сервер и в каком конкретно виде
← →
Drowsy (2009-03-05 11:44) [12]
> Вставь в триггер на удаление любое отладочное действие и
> убедись в том что запрос доходит до сервера в ожидаемом
> тобой виде
это как?
я попробовал в DeleteSql записал модифицирующий:
update MAIN
set
....
where
....
Всё работает
← →
Sergey13 © (2009-03-05 11:54) [13]> [7] Drowsy (05.03.09 10:57)
> ..... а всё равно не удаляет.
Опубликуй последнюю редакцию delete sql
← →
Drowsy (2009-03-05 11:58) [14]delete from MAIN
where
PRID = :OLD_PRID
"PRID" - автоинкрементное, ключевое поле.
← →
Drowsy (2009-03-05 12:00) [15]... ни с каким foreig -ном не связаное.
← →
Anatoly Podgoretsky © (2009-03-05 12:05) [16]Это слова, а мы словам не верим.
← →
Сергей М. © (2009-03-05 12:10) [17]
> это как?
Что "как" ?
Ну возьми да возбуди, к примеру, исключение а-ля
EXCEPTION "Сервер получил запрос на удаление записи c ID = " || cast(OLD.PRID AS VARCHAR(16))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c