Je lance le script SQL Firebird suivant, mais il ne produit pas les résultats attendus après l'exécution. Je veux l'utiliser dans mon application Delphi, mais je la teste d'abord dans l'IDE EMS SQL Manager. Après l'exécution du script, toutes les tables doivent être vides, tous les déclencheurs doivent être inactifs et tous les générateurs doivent être mis à 0. Cependant, tout cela ne se produit pas et je ne sais pas pourquoi.Le script Firebird ne produit pas les résultats attendus
est ici le script:
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 ;^
Donc ce n'est pas un problème Delphi; peut-être que vous devriez supprimer la balise Delphi. –
éditeur le mettre. J'ai d'abord mis: script firebird – SteveL
Pour le script de suppression, il peut échouer si vous avez une intégrité référentielle déclarée pour la base de données! – jachguate