MSDAORA was unable to begin a distributed transaction
1 réponse
Florent
Bonjour à tous,
j'ai crée un serveur lié (oracle) sur un serveru sql 2000 tournant sur
windows 2003.
Lorsque j'éxécute une query dans le query analyser tout est OK.
Par contre si je mets tout ça dans un trigger alors j'obtiens le message
d'erreur suivant:
"The operation could not be performed because the OLE DB prvider 'MSDAORA'
was unable to begin a distributed connexion"......
Voici le script de mon trigger:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
alter trigger [MT_TRIGGER_BA] ON [dbo].[Technician]
after insert, update
AS
select * into #Tech_Tmp
from openquery(ORA, 'SELECT
BAANDB.TTCCOM001300.T$EMNO,BAANDB.TTCCOM001300.T$DIVI FROM
BAANDB.TTCCOM001300')
declare @Tech_number as nvarchar(50)
select @Tech_number = Technician_Number from inserted
begin
update Technician
set Ba_Code = (select #Tech_Tmp.Divi from #.Tech_Tmp where
Technician.Technician_Number=#Tech_Tmp.Emno)
where Technician.Technician_Number = @Tech_number
end
Si quelqu'un peut m'aider car je cherche mais je ne trouve pas.
merci d'avance
Florent
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Il faut que MSDTC soit activé et que vous démarriez une transaction explicite distribuée avec :
BEGIN DISTRIBUTED TRANSACTION
A + Florent a écrit :
Bonjour à tous, j'ai crée un serveur lié (oracle) sur un serveru sql 2000 tournant sur windows 2003. Lorsque j'éxécute une query dans le query analyser tout est OK. Par contre si je mets tout ça dans un trigger alors j'obtiens le message d'erreur suivant: "The operation could not be performed because the OLE DB prvider 'MSDAORA' was unable to begin a distributed connexion"......
Voici le script de mon trigger:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
alter trigger [MT_TRIGGER_BA] ON [dbo].[Technician] after insert, update AS
select * into #Tech_Tmp from openquery(ORA, 'SELECT BAANDB.TTCCOM001300.T$EMNO,BAANDB.TTCCOM001300.T$DIVI FROM BAANDB.TTCCOM001300')
declare @Tech_number as nvarchar(50) select @Tech_number = Technician_Number from inserted
begin
update Technician set Ba_Code = (select #Tech_Tmp.Divi from #.Tech_Tmp where Technician.Technician_Number=#Tech_Tmp.Emno) where Technician.Technician_Number = @Tech_number
end
Si quelqu'un peut m'aider car je cherche mais je ne trouve pas. merci d'avance Florent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Il faut que MSDTC soit activé et que vous démarriez une transaction
explicite distribuée avec :
BEGIN DISTRIBUTED TRANSACTION
A +
Florent a écrit :
Bonjour à tous,
j'ai crée un serveur lié (oracle) sur un serveru sql 2000 tournant sur
windows 2003.
Lorsque j'éxécute une query dans le query analyser tout est OK.
Par contre si je mets tout ça dans un trigger alors j'obtiens le message
d'erreur suivant:
"The operation could not be performed because the OLE DB prvider 'MSDAORA'
was unable to begin a distributed connexion"......
Voici le script de mon trigger:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
alter trigger [MT_TRIGGER_BA] ON [dbo].[Technician]
after insert, update
AS
select * into #Tech_Tmp
from openquery(ORA, 'SELECT
BAANDB.TTCCOM001300.T$EMNO,BAANDB.TTCCOM001300.T$DIVI FROM
BAANDB.TTCCOM001300')
declare @Tech_number as nvarchar(50)
select @Tech_number = Technician_Number from inserted
begin
update Technician
set Ba_Code = (select #Tech_Tmp.Divi from #.Tech_Tmp where
Technician.Technician_Number=#Tech_Tmp.Emno)
where Technician.Technician_Number = @Tech_number
end
Si quelqu'un peut m'aider car je cherche mais je ne trouve pas.
merci d'avance
Florent
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Il faut que MSDTC soit activé et que vous démarriez une transaction explicite distribuée avec :
BEGIN DISTRIBUTED TRANSACTION
A + Florent a écrit :
Bonjour à tous, j'ai crée un serveur lié (oracle) sur un serveru sql 2000 tournant sur windows 2003. Lorsque j'éxécute une query dans le query analyser tout est OK. Par contre si je mets tout ça dans un trigger alors j'obtiens le message d'erreur suivant: "The operation could not be performed because the OLE DB prvider 'MSDAORA' was unable to begin a distributed connexion"......
Voici le script de mon trigger:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
alter trigger [MT_TRIGGER_BA] ON [dbo].[Technician] after insert, update AS
select * into #Tech_Tmp from openquery(ORA, 'SELECT BAANDB.TTCCOM001300.T$EMNO,BAANDB.TTCCOM001300.T$DIVI FROM BAANDB.TTCCOM001300')
declare @Tech_number as nvarchar(50) select @Tech_number = Technician_Number from inserted
begin
update Technician set Ba_Code = (select #Tech_Tmp.Divi from #.Tech_Tmp where Technician.Technician_Number=#Tech_Tmp.Emno) where Technician.Technician_Number = @Tech_number
end
Si quelqu'un peut m'aider car je cherche mais je ne trouve pas. merci d'avance Florent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************