cs_emeraudes
Messages postés63Date d'inscriptiondimanche 2 mai 2004StatutMembreDernière intervention 8 avril 2005
-
7 mars 2005 à 12:21
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
11 mars 2005 à 11:57
bonjour,
j'utilise Interbase 6 et je voudrais savoir comment faire pour faire un trigger de suppression.
voila j'explique
j'ai 2 tables "lot" et "produit"
dans mon application delphi je supprime le produit dans lot
je voudrais apres avoir supprimer ce produit de ma table "lot" , le supprimer de ma table "produit" avec un trigger
comment dois je faire?
avec Sql Server, ma suppression serai dans une table créer par SQl Serveur appelé 'deleted'
est ce le meme fonctionnement avec Interbase? serait ce pas 'old'?
merci de votre aide
Cordialement
>>>> "Le génie n'existe pas sans un grain de folie"
A voir également:
Ora-04082: new or old references not allowed in table level triggers
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006 9 mars 2005 à 12:31
Utilise l'intégrité référentielle entre tes deux tables et ajoute un
event on delete dans ta table lot de telle manière que le record
associé dans la table produit soit également effacer.
Personnellement, je me sert des triggers à l'insertion de nouveau record en association avec un generator.
Voici un exemple de code sql :
CREATE TABLE "SMS"
(
"ID" INTEGER NOT NULL,
"IDINCIDENT" INTEGER,
"IDAVIS" INTEGER,
"TEXTE_SMS" VARCHAR(1000),
"DATE_SMS" DATE,
"PAS_LU" "LOGICAL",
"EMETTEUR" SMALLINT,
"DESTINATAIRE" SMALLINT,
PRIMARY KEY ("ID")
);
SET TERM ^ ;
CREATE GENERATOR gen_sms;
SET GENERATOR gen_sms to
CREATE TRIGGER "ID_SMS" FOR "SMS"
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_sms,1);
end
C'est une table que j'utilise pour que les utilisateurs de mon applicationn puisse s'envoyer des messages, comme un sms.
Avec un composant TIBDataset, tu écris le script SELECTSQL et puis tu
génères automatiquement le code de modif, refresh et effacement.
Avec param.parabyname('ID') := le ID du record que je veux manipuler tu
signales ou TIBDATASET quel record doit être manipuler puis les
méthodes insert, edit et delete feront le reste pour toi.
J'espère avoir été clair n'hésite pas si tu veux plus d'explications.
Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
cs_emeraudes
Messages postés63Date d'inscriptiondimanche 2 mai 2004StatutMembreDernière intervention 8 avril 2005 9 mars 2005 à 17:24
merci de ce code. je connaissai deja ce code avec generator mais je
n'arrive pas a le faire fonctionner. dans ma requete (j'utilise un
IBQuery) comment dois je faire pour que le generator fonctionne?
par ex
query.SQL.Text:='Insert into lot where (??, 'bonjour')
table lot (nolot, libelle)
comment dois je faire? je dois écrire koi?
je n'est pas tre bien compri ou mettre ca : param.parabyname('ID') := le ID ??
ou dois je le mettre?
>>>> "Le génie n'existe pas sans un grain de folie"