Problem s Delphi i Interbase !?!
9 отговора
155 прегледа
Problem s Delphi i Interbase !?!
Imam sledniqt problem:
Imam database na Interbase 5.5 koiato sudurja tablica xxx. Definiral sum trigger za neia - trig_xxx - zadeistva se "before insert". Izpolzvam go s generator, no tova ne e vajno. Problema e che Delphi 5 klientyt ne iska da go zadejstva po nikakuv nachin. Ot konzolata na samia Interbase server vsichko e nared, no ot Delphi ne stava. Interesno che triggerite za "update" i "delete" srabotvat.
Vprochem Delphi programata mi izpolzva standartni dataware controls, za da insert-ne nov red.
Ste sum blagodaren ako niakoj mi pomogne.
Imam database na Interbase 5.5 koiato sudurja tablica xxx. Definiral sum trigger za neia - trig_xxx - zadeistva se "before insert". Izpolzvam go s generator, no tova ne e vajno. Problema e che Delphi 5 klientyt ne iska da go zadejstva po nikakuv nachin. Ot konzolata na samia Interbase server vsichko e nared, no ot Delphi ne stava. Interesno che triggerite za "update" i "delete" srabotvat.
Vprochem Delphi programata mi izpolzva standartni dataware controls, za da insert-ne nov red.
Ste sum blagodaren ako niakoj mi pomogne.
Re: Problem s Delphi i Interbase !?!
По какво считате, че не се задейства тригера? Че не се попълват данните? Не вярвам!
Може ли малко по-подробноописание на проблема? Защото ако Ви дава key violation (или както там се казваше в Interbase - отдавна не съм работил с него), можеби проблема е че подавате null стойност на поле, което е част от PK. В този случай независимо от тригера в базата опрерацията не успява!
Nihil tam munitum quod non expugnari pecuna possit
Може ли малко по-подробноописание на проблема? Защото ако Ви дава key violation (или както там се казваше в Interbase - отдавна не съм работил с него), можеби проблема е че подавате null стойност на поле, което е част от PK. В този случай независимо от тригера в базата опрерацията не успява!
Nihil tam munitum quod non expugnari pecuna possit
Re: Problem s Delphi i Interbase !?!
Кажи какво си написал в тригера пък ще видим...
Re: Problem s Delphi i Interbase !?!
Ami da ne bi da se opitwash da ustanowish stojnosti w niakoi poleta - a pak w twoiata programa kato dadesh AppendRecord ili InsertRecord da ne wizdash tezi stojnosti ???? - towa li e problema
Ako e towa polzwaj stojnosti po podrazbirane - ina4e ima reshenie na gornoto ama e mnogo losho (ili pone az se sestam za takowa)
---
Е т'ва е живот!
Ako e towa polzwaj stojnosti po podrazbirane - ina4e ima reshenie na gornoto ama e mnogo losho (ili pone az se sestam za takowa)
---
Е т'ва е живот!
Re: Problem s Delphi i Interbase !?!
Tialoto na trigera e slednoto(citiram po pamet):
new.x_id:=Gen_id(gen_x,1);
gen_x e generator;
x_id e purvoto primary key pole na tablicata. Iskam da go populvam avtomatichno (kato autoincrement poleta, koito gi niama w Interbase, a gi ima v Paradox naprimer).
Iskam pri appendvane(insertvane) na nov red vuv dadenata tablica(v Delphi), tova pole da se populne avtomaticno ot tialoto na trigera i to pri append chrez DB controla (primerno DBGrid), a ne
chrez izvikvane na metodi i prochie...
Standartna tehnika no ne srabotva...
new.x_id:=Gen_id(gen_x,1);
gen_x e generator;
x_id e purvoto primary key pole na tablicata. Iskam da go populvam avtomatichno (kato autoincrement poleta, koito gi niama w Interbase, a gi ima v Paradox naprimer).
Iskam pri appendvane(insertvane) na nov red vuv dadenata tablica(v Delphi), tova pole da se populne avtomaticno ot tialoto na trigera i to pri append chrez DB controla (primerno DBGrid), a ne
chrez izvikvane na metodi i prochie...
Standartna tehnika no ne srabotva...
Re: Problem s Delphi i Interbase !?!
CREATE TRIGGER SET_LOG_ID FOR LOG ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.LogID = GEN_ID(LOG_ID_GEN, 1);
NEW.Vreme = 'NOW';
END
Ей това е от работеща програма.
Да не си забравил да напишеш ACTIVE ?
POSITION е ако има няколко тригера за BEFORE INSERT в какъв ред да се изпълняват
AS
BEGIN
NEW.LogID = GEN_ID(LOG_ID_GEN, 1);
NEW.Vreme = 'NOW';
END
Ей това е от работеща програма.
Да не си забравил да напишеш ACTIVE ?
POSITION е ако има няколко тригера за BEFORE INSERT в какъв ред да се изпълняват
Re: Problem s Delphi i Interbase !?!
Ooo, извинявай не обърнах внимание, че ти каза, че тригера е работел през конзолата.
Има някъде нещо скапано в библиотеките, които ползваш....
Ако държиш да ползваш IB 5 поне си вземи IB 5.6, че в 5.5 казват,че имало сериозен бъг.
Иначе ти препоръчвам InterBase FireBird ([линк])
И си дръпни последна версия на IBX компонентите (ако тях позлваш) за това виж на ib.demo.ru - downloads
Има някъде нещо скапано в библиотеките, които ползваш....
Ако държиш да ползваш IB 5 поне си вземи IB 5.6, че в 5.5 казват,че имало сериозен бъг.
Иначе ти препоръчвам InterBase FireBird ([линк])
И си дръпни последна версия на IBX компонентите (ако тях позлваш) за това виж на ib.demo.ru - downloads
Re: Problem s Delphi i Interbase !?!
Добре, а какъв е резултата?
Имате запис, но без стойност в това поле?
Или въобще Delphi-то хвърля Exception и не се вмъква запис?
Nihil tam munitum quod non expugnari pecuna possit
Имате запис, но без стойност в това поле?
Или въобще Delphi-то хвърля Exception и не се вмъква запис?
Nihil tam munitum quod non expugnari pecuna possit
Re: Problem s Delphi i Interbase !?!
Казах: работеща програма.
Всичко е OK.
Имам актуален уникален номер в полето.
Всичко е OK.
Имам актуален уникален номер в полето.
Re: Problem s Delphi i Interbase !?!
Ne se podava ochakvanata stojnost i kato rezultat ne moga da post-na zapisa.
A inache zapisa se vmukva korektno. Wprochem problema ne e nito w "position", nito w "active"
A inache zapisa se vmukva korektno. Wprochem problema ne e nito w "position", nito w "active"