powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не отрабатывает CommandTimeout
9 сообщений из 34, страница 2 из 2
не отрабатывает CommandTimeout
    #40078755
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victorov1,

А вот в этом случае
Код: sql
1.
start sqlcmd -S . -E -t 5 -Q "raiserror('%d', 0, 0, @@spid) with nowait; set nocount on; declare @p int; while (1=1) begin waitfor delay '00:00:01'; set @p=1; end;"

клиент почему-то не стал учитывать "отчеты о выполнении каждого stmt" и благополучно отвалился по таймауту.
Странная избирательность.
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40078758
victorov1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm
victorov1,

А вот в этом случае
Код: sql
1.
start sqlcmd -S . -E -t 5 -Q "raiserror('%d', 0, 0, @@spid) with nowait; set nocount on; declare @p int; while (1=1) begin waitfor delay '00:00:01'; set @p=1; end;"

клиент почему-то не стал учитывать "отчеты о выполнении каждого stmt" и благополучно отвалился по таймауту.
Странная избирательность.


класс!!!
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40078761
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
накидал консольный тестик:
Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
 class Program
    {
        static string cns = "Data Source=.;Initial Catalog=test; Integrated Security=SSPI;";
        static string cmds = "begin tran; while (1=1) insert into tx values (1); commit tran;";
        static void Main(string[] args)
        {
            string t = "";
            
            while (t != "0" && t != "1" && t != "2" && t != "3")
            {
                Console.WriteLine("choose provider: 0 - SqlClient; 1-MSSQLClient; 2-ODBC; 3-OLEDB;");
                t = Console.ReadLine();
            }
            
            switch (t)
            {
                case "0": runSQLNCLI(); break;
                case "1": runMSSQLClient(); break;
                case "2": runODBCClient(); break;
                case "3": runOLEDB(); break;
            }

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
                


        }

        static void runSQLNCLI()
        {
            using var cn = new System.Data.SqlClient.SqlConnection(cns);
            using var cmd = new System.Data.SqlClient.SqlCommand(cmds, cn) { CommandTimeout = 5 };
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        static void runMSSQLClient()
        {
            using var cn = new Microsoft.Data.SqlClient.SqlConnection(cns);
            using var cmd = new Microsoft.Data.SqlClient.SqlCommand(cmds, cn) { CommandTimeout = 5 };
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        static void runODBCClient()
        {
            using var cn = new System.Data.Odbc.OdbcConnection("Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=test;");

            using var cmd = new System.Data.Odbc.OdbcCommand(cmds, cn) { CommandTimeout = 5 };
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        static void runOLEDB()
        {
            var cn = new System.Data.OleDb.OleDbConnection("Provider=SQLOLEDB;Server=(local);Database=test;Integrated Security=SSPI");

            var cmd = new System.Data.OleDb.OleDbCommand(cmds, cn) { CommandTimeout = 5 };
            
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }



итог:
System.Data.SqlClient - отлуп по таймауту
Microsoft.Data.SqlClient - отлуп по таймауту
ODBC - выполняет сколько душе угодно
SQLOLEDB - выполняет сколько душе угодно
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40078833
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff

итог:
System.Data.SqlClient - отлуп по таймауту
Microsoft.Data.SqlClient - отлуп по таймауту
ODBC - выполняет сколько душе угодно
SQLOLEDB - выполняет сколько душе угодно


Просто, ты не умеешь устанавливать таймаут для SQLOLEDB и ODBC.
ОDBC я редко пользуюсь, а SQLOLEDB замечательно отрабатывает таймаут.
Никаких проблем.
101%, что и у ОDBC все в порядке.
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40078836
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо смотреть документацию - в каких единицах изменения таймаут для какого сервиса и каков порог. Вообще круто, когда в булочной тебе продают гвозди!
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40079166
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
felix_ff

итог:
System.Data.SqlClient - отлуп по таймауту
Microsoft.Data.SqlClient - отлуп по таймауту
ODBC - выполняет сколько душе угодно
SQLOLEDB - выполняет сколько душе угодно


Просто, ты не умеешь устанавливать таймаут для SQLOLEDB и ODBC.
ОDBC я редко пользуюсь, а SQLOLEDB замечательно отрабатывает таймаут.
Никаких проблем.
101%, что и у ОDBC все в порядке.


ну нарисуй (или подправь) пример как правильно устанавливать commandTimeout для ODBCCommand/OLEDBCommand
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40079187
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
aleks222
пропущено...


Просто, ты не умеешь устанавливать таймаут для SQLOLEDB и ODBC.
ОDBC я редко пользуюсь, а SQLOLEDB замечательно отрабатывает таймаут.
Никаких проблем.
101%, что и у ОDBC все в порядке.


ну нарисуй (или подправь) пример как правильно устанавливать commandTimeout для ODBCCommand/OLEDBCommand

Извини, дарагой, "есть у нас и другие дела...".
Вот, когда припечет, буду разбираться.

https://knowledgebase.progress.com/articles/Article/000040525
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40079194
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
felix_ff
пропущено...


ну нарисуй (или подправь) пример как правильно устанавливать commandTimeout для ODBCCommand/OLEDBCommand

Извини, дарагой, "есть у нас и другие дела...".
Вот, когда припечет, буду разбираться.

https://knowledgebase.progress.com/articles/Article/000040525


дарагой, прежде чем давать ссылки на продукты business-api слоя, ты хотя бы ознакомился с мат.частью, или ты у нас мышкокликатель?

ну да бог с ним, я даже не поленился качнул их реализацию драйвера odbc. результат тот же.


пустозвонить может каждый
...
Рейтинг: 0 / 0
не отрабатывает CommandTimeout
    #40079204
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждый волен веровать.
В то, что ODBC не поддерживает timeout.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не отрабатывает CommandTimeout
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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