Проверил. Без изменений.
Ошибка:
Код: Выделить всё
----------------------------
[Customer Explanation]
----------------------------
[General Info]
Application: Stimulsoft Reports.Net
Framework: v2.0.50727
Version: Version: 2010.2.735 from 28 June 2010
MachineName: ***********
OSVersion: Microsoft Windows NT 5.1.2600 Service Pack 3
UserName: ********
----------------------------
[Exception Info]
Message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Source: MySql.Data
StackTrace:
в MySql.Data.MySqlClient.MySqlConnection.HandleTimeoutOrThreadAbort(Exception ex)
в MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
в MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
в System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
в System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
в System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
.........
----------------------------
[Assemblies]
mscorlib, Version = 2.0.0.0
Stimulsoft.Base, Version = 2010.2.735.0
Stimulsoft.Report, Version = 2010.2.735.0
Stimulsoft.Report.Design, Version = 2010.2.735.0
System.Windows.Forms, Version = 2.0.0.0
Код программы:
Код: Выделить всё
this.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiMySqlDatabase("MySqlDB", "MySqlDB", "Data Source=ServerName;User Id=UserName;Password=;Default Command Timeout=90", false));
...
public void GetИсточникДанных1_SqlCommand(object sender, System.EventArgs e)
{
this.ИсточникДанных1.SqlCommand = "SELECT IF(BENCHMARK(1000000000,SIN(RAND(NOW())))=0,NOW(),NOW()) as TimeRun";
}
#region DataSource ИсточникДанных1
public class ИсточникДанных1DataSource : Stimulsoft.Report.Dictionary.StiMySqlSource
{
public ИсточникДанных1DataSource() : base("MySqlDB", "ИсточникДанных1", "ИсточникДанных1", "", true, false, 30)
{ }
public virtual DateTime TimeRun
{
get
{
return ((DateTime)(StiReport.ChangeType(this["TimeRun"], typeof(DateTime), true)));
}
}
}
#endregion DataSource ИсточникДанных1
На сколько я понимаю, вы жестко устанавливаете время в строке равное 30 сек.:
Код: Выделить всё
public ИсточникДанных1DataSource() : base("MySqlDB", "ИсточникДанных1", "ИсточникДанных1", "", true, false, 30)
Поменял в файле
StiMySqlSource.cs строку
Код: Выделить всё
base(nameInSource, name, alias, sqlCommand, connectOnStart, reconnectOnEachRow, commandTimeout)
на
Код: Выделить всё
base(nameInSource, name, alias, sqlCommand, connectOnStart, reconnectOnEachRow, 90)
Заработало.
Но это временное решение. Жду "правильного" решения.