我正在運行以下Firebird SQL腳本,但它在執行後不會產生預期結果。我想在我的Delphi應用程序中使用它,但首先要在EMS SQL Manager IDE中測試它。執行腳本後,所有表應該是空的,所有觸發器都設置爲非活動狀態,所有發生器設置爲0.但是,這一切都沒有發生,我不知道爲什麼。Firebird腳本未產生預期結果
這裏是腳本:
SET TERM^;
execute block
as
declare trig char(31);
declare genr char(31);
declare reln char(31);
-- all triggers
declare curt cursor for
(select rdb$trigger_name from rdb$triggers
where rdb$system_flag=0);
-- all generators
declare curg cursor for
(select rdb$generator_name
from rdb$generators
where rdb$system_flag = 0);
-- all tables
declare cur cursor for
(select rdb$relation_name from rdb$relations
where rdb$system_flag = 0 and rdb$view_blr is null
and rdb$relation_name not in ('tblyesno',
'tblpaymentmethod',
'tblresourcetype'));
begin
-- deactivate all triggers
open curt;
while (1=1) do
begin
fetch curt into trig;
if (row_count = 0) then leave;
execute statement 'alter trigger ' || trig || ' inactive';
suspend;
end
close curt;
-- zero all generators
open curg;
while (1=1) do
begin
fetch curg into genr;
if (row_count = 0) then leave;
execute statement 'set generator ' || genr || ' to 0';
suspend;
end
close curg;
-- truncate all tables
open cur;
while (1=1) do
begin
fetch cur into reln ;
if (row_count = 0) then leave;
execute statement 'delete * from ' || reln;
suspend;
end
close cur;
INSERT INTO
TBLCOUNTRY
(
CURRENCYABBR,
COUNTRYNAME,
CURRENCYNAME
)
VALUES (
'A',
'Aa',
'Aaa');
end^
SET TERM ;^
所以這不是Delphi問題;也許你應該刪除Delphi標籤。 – 2010-11-05 21:26:35
編輯把它。我原來的意思是:firebird腳本 – SteveL 2010-11-06 04:37:49
對於刪除腳本,如果您有任何爲數據庫聲明的參照完整性,它可能會失敗! – jachguate 2010-11-08 16:09:13