Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Триггер в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.07 c
15-1339046808
tesseract
2012-06-07 09:26
2013.03.22
НА 92 году жизни скончался Рэй Бредбери.


15-1348259402
Юрий
2012-09-22 00:30
2013.03.22
С днем рождения ! 22 сентября 2012 суббота


15-1330461002
Юрий
2012-02-29 00:30
2013.03.22
С днем рождения ! 29 февраля 2012 среда


2-1333910862
neverush
2012-04-08 22:47
2013.03.22
JvRichEdit unicode


2-1334141822
Chuck Bass
2012-04-11 14:57
2013.03.22
framerect пунктиром





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский