Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Bonjour,
Pierre BOUSQUET a écrit :
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH
APPEND AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no :
'+CAST(@DlNo as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes
comportent des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH
APPEND AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no :
'+CAST(@DlNo as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes
comportent des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :
Bonjour,
Pierre BOUSQUET a écrit :
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH
APPEND AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no :
'+CAST(@DlNo as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes
comportent des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
--
Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Pierre BOUSQUET a écrit :Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH APPEND
AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no : '+CAST(@DlNo
as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
Bizzare, à part que le trigger est horriblement mal écrit car vous supposez
qu'il n'y aura jamais qu'une seule ligne visée, ce qui est contraire à la
logique des triggers (et il pourrait être simplifié), je ne voit pas la cause
de ce problème.
Faites :
SELECT 1
WHERE @@OPTIONS & 256 = 256
Si la réponse n'est pas 1, faites :
SET QUOTED_IDENTIFIER ON
A +ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes comportent
des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Pierre BOUSQUET a écrit :
Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH APPEND
AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no : '+CAST(@DlNo
as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
Bizzare, à part que le trigger est horriblement mal écrit car vous supposez
qu'il n'y aura jamais qu'une seule ligne visée, ce qui est contraire à la
logique des triggers (et il pourrait être simplifié), je ne voit pas la cause
de ce problème.
Faites :
SELECT 1
WHERE @@OPTIONS & 256 = 256
Si la réponse n'est pas 1, faites :
SET QUOTED_IDENTIFIER ON
A +
ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes comportent
des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :
Bonjour,
Pierre BOUSQUET a écrit :
Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +
Pierre BOUSQUET a écrit :Voila le trigger
CREATE TRIGGER TEST_CBINS_F_DOCLIGNE ON F_DOCLIGNE FOR INSERT WITH APPEND
AS
DELETE FROM ZZ_TEST
IF EXISTS(SELECT 'a' FROM INSERTED WHERE do_domaine=0 AND do_type=1 AND
LEFT(ar_ref,2)!='UG')
BEGIN
INSERT INTO ZZ_TEST (test) VALUES ('1. Pièce concernée')
DECLARE @val int
SELECT @val = pcr_ug FROM Z_PCR_UG,INSERTED WHERE
Z_PCR_UG.ct_num=INSERTED.ct_num AND Z_PCR_UG.ar_ref=INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('2. valeur pcr : '+CAST(@val as
Char(20)))
IF @val!=0
BEGIN
DECLARE @DlNo int
SELECT @DlNo = F_DOCLIGNE.dl_no FROM F_DOCLIGNE,INSERTED WHERE
F_DOCLIGNE.do_piece=INSERTED.do_piece AND
F_DOCLIGNE.ar_ref='UG'+INSERTED.ar_ref
INSERT INTO ZZ_TEST (test) VALUES ('3. valeur dl_no : '+CAST(@DlNo
as Char(20)))
-- On calcule la quantité
SELECT @val = dl_qte*@val/100 FROM INSERTED
-- On a pas trouvé la ligne donc on va la créer
IF @DlNo=0
BEGIN
DECLARE @NumLigne int
SELECT @NumLigne = dl_ligne+1 FROM INSERTED
SELECT @DlNo = dl_no FROM INSERTED
INSERT INTO F_DOCLIGNE
(DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,DL_Ligne,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,AR_Ref,DL_Design,DL_Qte,DL_QteBC,DL_QteBL,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics)
SELECT
DO_Domaine,DO_Type,CT_Num,DO_Piece,DL_PieceBC,DL_PieceBL,DO_Date,DL_DateBC,DL_DateBL,dl_Ligne+1,DO_Ref,DL_TNomencl,DL_TRemPied,DL_TRemExep,'UG'+AR_Ref,DL_Design,@val,@val,@val,DL_PoidsNet,DL_PoidsBrut,DL_Remise01REM_Valeur,DL_Remise01REM_Type,DL_Remise02REM_Valeur,DL_Remise02REM_Type,DL_Remise03REM_Valeur,DL_Remise03REM_Type,DL_PrixUnitaire,DL_PUBC,DL_Taxe1,DL_TypeTaux1,DL_TypeTaxe1,DL_Taxe2,DL_TypeTaux2,DL_TypeTaxe2,RE_No,AG_No1,AG_No2,DL_PrixRU,DL_CMUP,DL_MvtStock,GL_No,AF_RefFourniss,EU_Enumere,EU_Qte,DL_TTC,DE_No,DL_NoRef,DL_TypePL,DL_PUDevise,DL_PUTTC,DO_DateLivr,CA_Num,DL_Taxe3,DL_TypeTaux3,DL_TypeTaxe3,DL_Frais,DL_Valorise,AR_RefCompose,DL_NonLivre,AC_RefClient,DL_MontantHT,DL_MontantTTC,DL_FactPoids,DL_Escompte,qte_autorisee,qte_envoyee_bics
FROM F_DOCLIGNE WHERE dl_no=@DlNo
Return
END
-- Modification de la ligne
INSERT INTO ZZ_TEST (test) VALUES ('99. Update réalisé de
'+CAST(@val as Char(20)))
UPDATE F_DOCLIGNE SET dl_qte=dl_qte+@val WHERE dl_no=@DlNo
END
END
Bizzare, à part que le trigger est horriblement mal écrit car vous supposez
qu'il n'y aura jamais qu'une seule ligne visée, ce qui est contraire à la
logique des triggers (et il pourrait être simplifié), je ne voit pas la cause
de ce problème.
Faites :
SELECT 1
WHERE @@OPTIONS & 256 = 256
Si la réponse n'est pas 1, faites :
SET QUOTED_IDENTIFIER ON
A +ci-dessous le message d'erreur
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = INSERT a échoué car les options SET suivantes comportent
des paramètres incorrects : 'QUOTED_IDENTIFIER'.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 42000
Error Number = -2147217900
Native Error Number = 1934
la requete "INSERT INTO F_DOCLIGNE" plante dans le trigger mais pas
lorsqu'elle est isolée
SQLpro a pensé très fort :Bonjour,
Pierre BOUSQUET a écrit :Bonjour,
J'ai ce message d'erreur lorsque j'execute un INSERT depuis un trigger.
Si j'isole cette requete et que je l'execute dans l'analyseur de
requete : pas de probleme.
Avez vous une idée ?
Comment voulez-vous que l'on vous aide si vous ne postez pas :
1) les requêtes en cause ?
2) le message EXACT avec n° de l'erreur ?
Ayez au moins la politesse de commencer par décrire proprement et avec
le maximum de renseignements votre problème !
Merci d'avance
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
A +