Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Триггер в FireBird   Найти похожие ветки 

 
Knight ©   (2012-05-02 15:20) [40]


> Хотя, странно это - зачем триггер создавать из своей программы?


Прога с базой embedded, если базы нет генерю чистую при первом запуске.


 
Knight ©   (2012-05-02 15:24) [41]


> надо поставить Query.ParamCheck = False

И ещё Query.Params.Clear; Спасибо! Ошибка пропала :)


 
Труп Васи Доброго ©   (2012-05-02 15:29) [42]

Совсем запутал! Это тебе кто сообщение об ошибке выдаёт? И Когда выдаёт?
з.Ы. Вынеси UPDATE "за скобки"

Query.SQL.Text:="CREATE TRIGGER AU_NOTE FOR tNote "
                   +"  ACTIVE AFTER INSERT OR UPDATE OR DELETE "
                   +"AS "
                   +"DECLARE variable vID INTEGER; "
                   +"DECLARE variable vStatus INTEGER; "
                   +"BEGIN "
                   +" IF (DELETING) THEN "
                   +"   vID=Old.fParentID; "
                   +" ELSE "
                   +"   vID=New.fParentID; "
                   +" IF (vID>0) THEN "
                   +" BEGIN "
                   +"  IF (NOT (EXISTS(SELECT 1 FROM tNote WHERE fParentID=:vID AND fStatus<>1))) THEN "
                   +"     vStatus=1; "
                   +"  ELSE "
                   +"   IF (NOT (EXISTS(SELECT 1 FROM tNote WHEREfParentID=:vID AND fStatus<>4))) THEN "
                   +"     vStatus=4; "
                   +"   ELSE "
                   +"    IF (EXISTS(SELECT 1 FROM tNote WHERE fParentID=:vID AND (fStatus=3 OR fStatus=4))) THEN "
                   +"    vStatus=3; "
                   +"    ELSE "
                   +"     vStatus=2; "
                   +" END "
                   +" UPDATE tNote SET fStatus=:vStatus WHERE fID=:vID; "
                   +"END";


 
Труп Васи Доброго ©   (2012-05-02 15:32) [43]

Мой вариант будет работать всегда, твой только в том случае, если никто никогда и никак не захочет изменить непосредственно статус "родителя". Что лучше - решать тебе.


 
Knight ©   (2012-05-02 15:44) [44]


> изменить непосредственно статус "родителя"

Изменение статуса родителя из программы недоступно.


 
Knight ©   (2012-05-02 15:45) [45]


> Труп Васи Доброго

Я твой вариант сохранил на всякий :)


 
Труп Васи Доброго ©   (2012-05-02 15:56) [46]


> Изменение статуса родителя из программы недоступно.

Я тоже раньше был такой наивный. Запомни, всегда найдётся какая-нибудь .адла "умная", которая залезет в базу в обход программы и поковыряется.
Да и если вдруг база будет использоваться другими программами (написанными не тобой), то там такой защиты может не быть.
ИМХО всё что можно перенести в базу должно быть перенесено. Программа должна только запрашивать готовый результат или передавать базе данные для внесения/изменения, но сама ничего делать в базе не должна, это работа СУБД.


 
Knight ©   (2012-05-02 16:05) [47]


> Труп Васи Доброго ©   (02.05.12 15:56) [46]

Это диплом. Практической ценности (кроме меня - т.к. пишу для себя) не несёт. Весь смысл, защитить его как-нибудь и пользоваться самому, т.к. органайзер вроде надо, но из готового ничего не подобрал либо не то, либо слишком наворочено :)


 
oldman ©   (2012-05-03 12:23) [48]


> Это диплом. Практической ценности (кроме меня - т.к. пишу
> для себя) не несёт.


Пишешь диплом для себя?
Ого!!!


 
Anatoly Podgoretsky ©   (2012-05-03 12:28) [49]

> oldman  (03.05.2012 12:23:48)  [48]

А новых студентов принимают?


 
Knight ©   (2012-05-03 20:40) [50]


> Пишешь диплом для себя?

Я 1с занимаюсь, тем подходящих небыло. Выбрал что самому пригодится.



Страницы: 1 2 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.287 c
1-1300272526
Unknown_user
2011-03-16 13:48
2013.03.22
Ограничение скроллинга в 32767


15-1331287470
Александар
2012-03-09 14:04
2013.03.22
Подмена(дублированя) пакетов между клиентом и определёном ip


15-1340742529
Дмитрий С
2012-06-27 00:28
2013.03.22
О стиле "неубиваемого" кода.


15-1341037128
AV
2012-06-30 10:18
2013.03.22
Хватит сыпать на пол?


15-1337097562
brother
2012-05-15 19:59
2013.03.22
Интересно мнение: