Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Подтвердить транзакцию в процедуре InterBase


Автор: Delphist 3.11.2005, 15:05
Есть хранимая процедура, которая вставляет записи по определенному условию. Но записи не вставляются в таблицу нужно как-то потдвердить транзакцию. Как это сделать?

Код

CREATE PROCEDURE UPD_RGRSN_COEFSNT (
RAWGROUPID INTEGER,
QLT_ID INTEGER,
K1 DOUBLE PRECISION,
K2 DOUBLE PRECISION)
AS
BEGIN
IF (NOT EXISTS (SELECT rgc.RAW_GROUP_ID, rgc.QLT_ID
FROM rgrsn_coeffsnt rgc
WHERE rgc.raw_group_id =:rawgroupid AND
rgc.qlt_id =:qlt_id)) THEN BEGIN
INSERT INTO rgrsn_coeffsnt
(RAW_GROUP_ID, QLT_ID, K1, K2)
VALUES (:rawgroupid, :qlt_id, :K1, :K2);
END
ELSE BEGIN
UPDATE RGRSN_COEFFSNT
SET
K1 =:K1,
K2 =:K2
WHERE RAW_GROUP_ID =:RAWGROUPID AND
QLT_ID =:QLT_ID;
END
suspend;
END

Автор: YurikGL 3.11.2005, 18:06
Если ты вызываешь процедуру из делфи, то нужно ту, транзацию, к которой подцеплен компонент, через который ты вызываешь процедуру, сказать СommitRetaining или просто Commit.

Автор: <Spawn> 3.11.2005, 21:18
Delphist

Код

commit; 


в конце кода твоей процедуры должно сработать, если в IB для этой цели нет ни каких дополнительных ухищрений, типа execute procedure для вызова процедуры...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)