【发布时间】:2014-12-11 14:56:58
【问题描述】:
我继承了一个 SSIS 包,它有一个 c# 脚本任务,它从我们的 SQL Server 错误日志中读取失败的登录并报告它们。它最近开始在我们的一台服务器上超时,我想从默认的 30 增加超时。现在我有
try
{
string readFromConnection = "Data Source=" + (string)Dts.Variables["OneServer"].Value + ";Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package;";
ArrayList results = null;
try
{
results = ExecuteQuery("EXEC sys.xp_readerrorlog 0,1, N'Login failed for user'", readFromConnection);
}
如何在其中添加 CommandTimeout?还是有更好的方法?
【问题讨论】:
-
太棒了。这在我尝试的搜索中没有出现,但可能已经解决了我的问题。我很感激。
-
@EricHauenstein 这涵盖了连接到 SQL Server 时的超时。连接后,会有一个不同的超时来控制查询的执行预计会运行多长时间,OP 使用 CommandTimeout 可以避免这种超时。但是,我对ExecuteQuery 的快速回顾并没有显示设置
-
等待,因此获取到 sql server 的连接需要 30 秒以上(由您的连接字符串控制),或者您的查询运行时间超过默认值(30 秒)SqlCommand.CommandTimeout property
-
在评论blinkc是正确的之后才意识到。这并没有解决查询超时问题,也不存在连接超时问题。当然,当我测试它时它运行得很好,因为查询现在不会超过 30 秒。