📄 transactedmessagemediator_sql2000.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Data;
using System.Xml;
using System.Transactions;
namespace SSBExternalActivationRouter
{
class TransactedMessageMediator_SQL2000 : ITransactedMessageMediator
{
SqlConnection _conn;
//You could add another layer so this object simply manages one of many
//translators based on message type
public void Translate(SSBMessage msg)
{
SqlParameter param;
SqlCommand cmd;
string query;
XmlDocument xml = new XmlDocument();
SqlTransaction tran;
//This is not the best solution
//ideally you want to Enlist the current
//transaction and make it distributed
//Receive command appears to use the SAVE Tran
//Which is not supported in a distributed transaction
tran = _conn.BeginTransaction();
cmd = _conn.CreateCommand();
cmd.Transaction = tran;
query = "EXEC InsertTestSSB @body ";
cmd.CommandText = query;
param = cmd.Parameters.Add("@body", SqlDbType.Text);
xml.Load(msg.Body);
param.Value = xml.OuterXml;
cmd.ExecuteNonQuery();
tran.Commit();
}
public void Init(object obj)
{
_conn = new SqlConnection(obj.ToString());
_conn.Open();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -