powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / sql server + c# clr
3 сообщений из 3, страница 1 из 1
sql server + c# clr
    #39213771
noTpyJI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
задача:

на стороне sql открыта транзакция внутри которой что то происходит.
внутри этой транзакции нужно вызвать clr процедуру на C# которая что то куда то запишет
и в случае отката транзакции, действия которые были выполнены в процессе работы clr функции
не должны откатится.

для теста накидал метод на C#
для теста накидал матод на C#

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
.........

namespace Future.SQLCLR
{
    public class Exception
    {
        public static string ConnectionString
        {
            get
            {
                //string ret = "context connection = true";//
                string ret = "Data Source = server; Initial Catalog = database; Integrated Security = True";
                return ret;
            }
        }


        [SqlFunction()]
        public static void TestInsert(SqlString inputParam)
        {
            using (var cn = new SqlConnection(ConnectionString))
            {
                try
                {
                    cn.ConnectionString = "Enlist=false";

                    cn.Open();
                    
                    var cmd = new SqlCommand("insert into table(field)" +
											 "select field from table_1", cn);

                    cmd.ExecuteNonQuery();
                }
                catch (System.Exception)
                {

                    throw;
                }
                finally
                {
                    cn.Close();
                }
            }
        }
    }
.......
}



на sql
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE [audit].[TestInsert]
(
	@msg   nvarchar(2048)
)
AS EXTERNAL NAME CLR.[SQLCLR.Exception].TestInsert

begin tran

exec [TestInsert] 'msg'

rollback



получаю ошибку System.Data.SqlClient.SqlException: Transaction context in use by another session.
...
Рейтинг: 0 / 0
sql server + c# clr
    #39215217
noTpyJI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так много ответов!
...
Рейтинг: 0 / 0
sql server + c# clr
    #39215382
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noTpyJIтак много ответов!все сидят и гадают, в каком месте тут ASP.NET
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / sql server + c# clr
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]