OVH Cloud OVH Cloud

connecion de deux base SQL server 2000

5 réponses
Avatar
Nicolas
Bonjour,

voici ma question :
sur un serveur SQL Server 2000, j'ai deux base,

l'une, "Aido", doit executer une procédure stockée sur la base "master".
petite schéma :
************************************************************************************************
db : aido
table : DOSSIER
trigger :

CREATE TRIGGER trgEmployeurNull ON [dbo].[DOSSIER]
FOR INSERT, UPDATE
AS
declare @typeDossier numeric(18,0)
declare @accesDirect bit
declare @employeurID numeric(18,0)
declare @userID numeric(18,0)
declare @dossierID numeric(18,0)
declare @userPseudo varchar(16)
declare @userPassword varchar(16)
declare @dateError datetime
declare @nomUser varchar(80)

select @typeDossier = i.ID_PRODUIT, @accesDirect = i.ACCES_DIRECT,
@employeurID = i.ID_EMPLOYEUR from inserted i

IF( @typeDossier = 27 and @accesDirect = 1 and @employeurID is null )
BEGIN

SELECT @dossierID = i.ID_DOSSIER, @userPseudo = dbo.[USER].PSEUDO,
@userPassword = dbo.[USER].PWD, @userID = dbo.[USER].ID_USER, @nomUser =
dbo.[USER].NOMUSER
FROM inserted i INNER JOIN
dbo.USER_DOSSIER ON i.ID_DOSSIER =
dbo.USER_DOSSIER.ID_DOSSIER INNER JOIN
dbo.[USER] ON dbo.USER_DOSSIER.ID_USER =
dbo.[USER].ID_USER

INSERT INTO dbo.errorEmployeur
( userID, dossierID, userPseudo, userPassword, userName, dateError )
VALUES
( @userID, @dossierID, @userPseudo, @userPassword, @nomUser, getdate() )

END


then, on the same db in the table ERROREMPLOYEUR

trigger :
CREATE TRIGGER trgSendMail ON [dbo].[ERROREMPLOYEUR]
FOR INSERT
AS
EXEC sp_send_cdosysmail 'aido.com', 'admin@aido.com', 'Nouvelle erreur',
'Une nouvelle erreur vient d''être ajouté dans la table!!'

****************************************************************************************************************************************
db : master
stocked procedure : sp_send_cdosysmail
****************************************************************************************************************************************
mais, dès que le trigger sur la table erroremployeur est lancé, j'obtient un
message d'erreur du genre :
la procédure stockée sp_send_cdosysmail ne se trouve pas dans la base AIDO.

bon, ça je le sais, mais comment lui dire qu'elle se trouve sur la base
"master" ?? any idea ??
Merci d'avance.

Nicolas

5 réponses

Avatar
GLB - Gilles LE BARBIER
Salus nicolas,

essaye ça !
EXEC master.dbo.sp_send_cdosysmail 'aido.com', ......

Non testé !

A+

Gilles
Avatar
Nicolas
cool, j'ai déjà une réponse, alors que sur le newsgroup anglais, j'attends
toujours.

Ta réponse, c'est exactement ce à koi je viens de penser, je test et je te
dis ça.

Merci.
"GLB - Gilles LE BARBIER" a écrit
dans le message de news:
Salus nicolas,

essaye ça !
EXEC master.dbo.sp_send_cdosysmail 'aido.com', ......

Non testé !

A+

Gilles



Avatar
GLB - Gilles LE BARBIER
> cool, j'ai déjà une réponse, alors que sur le newsgroup anglais, j'attends
toujours.


Le news anglophone !!
La plupart sont américain et ils sont en plein repas du midi :-)

Bon test
A+

Gilles
Avatar
Nicolas
Arf oui, j'avais oublié le décalage horaire !!

enfin bon, ça fonctionne bien, je n'ai plus d'erreur, mais je ne reçoit pas
le mail,
je pense que le serveur smtp requiert une authentification, encore un soucis
en perspective....

merci de ton aide.

Nicolas.

"GLB - Gilles LE BARBIER" a écrit
dans le message de news:
cool, j'ai déjà une réponse, alors que sur le newsgroup anglais,
j'attends toujours.


Le news anglophone !!
La plupart sont américain et ils sont en plein repas du midi :-)

Bon test
A+

Gilles


Avatar
Med Bouchenafa
SQL Server cherche automatiquement dans MASTER une procedure stockée dans le
nom commence par SP
S'il te dit qu'elle n'est y pas dans ta base, c'est qu'il a deja cherché
dans MASTER et il n'a pas trouvé

--
Bien cordialement
Med Bouchenafa


"Nicolas" wrote in message
news:
Bonjour,

voici ma question :
sur un serveur SQL Server 2000, j'ai deux base,

l'une, "Aido", doit executer une procédure stockée sur la base "master".
petite schéma :
************************************************************************************************
db : aido
table : DOSSIER
trigger :

CREATE TRIGGER trgEmployeurNull ON [dbo].[DOSSIER]
FOR INSERT, UPDATE
AS
declare @typeDossier numeric(18,0)
declare @accesDirect bit
declare @employeurID numeric(18,0)
declare @userID numeric(18,0)
declare @dossierID numeric(18,0)
declare @userPseudo varchar(16)
declare @userPassword varchar(16)
declare @dateError datetime
declare @nomUser varchar(80)

select @typeDossier = i.ID_PRODUIT, @accesDirect = i.ACCES_DIRECT,
@employeurID = i.ID_EMPLOYEUR from inserted i

IF( @typeDossier = 27 and @accesDirect = 1 and @employeurID is null )
BEGIN

SELECT @dossierID = i.ID_DOSSIER, @userPseudo = dbo.[USER].PSEUDO,
@userPassword = dbo.[USER].PWD, @userID = dbo.[USER].ID_USER, @nomUser =
dbo.[USER].NOMUSER
FROM inserted i INNER JOIN
dbo.USER_DOSSIER ON i.ID_DOSSIER =
dbo.USER_DOSSIER.ID_DOSSIER INNER JOIN
dbo.[USER] ON dbo.USER_DOSSIER.ID_USER =
dbo.[USER].ID_USER

INSERT INTO dbo.errorEmployeur
( userID, dossierID, userPseudo, userPassword, userName, dateError )
VALUES
( @userID, @dossierID, @userPseudo, @userPassword, @nomUser, getdate() )

END


then, on the same db in the table ERROREMPLOYEUR

trigger :
CREATE TRIGGER trgSendMail ON [dbo].[ERROREMPLOYEUR]
FOR INSERT
AS
EXEC sp_send_cdosysmail 'aido.com', '', 'Nouvelle erreur',
'Une nouvelle erreur vient d''être ajouté dans la table!!'

****************************************************************************************************************************************
db : master
stocked procedure : sp_send_cdosysmail
****************************************************************************************************************************************
mais, dès que le trigger sur la table erroremployeur est lancé, j'obtient
un message d'erreur du genre :
la procédure stockée sp_send_cdosysmail ne se trouve pas dans la base
AIDO.

bon, ça je le sais, mais comment lui dire qu'elle se trouve sur la base
"master" ?? any idea ??
Merci d'avance.

Nicolas