Итак, у нас есть сервер AIX (тьфу), на котором работает система ERP. Встроенные в эту систему отчеты отстой, поэтому мне, конечно, поручено создавать нужные нам отчеты.
У меня много отчетов, которые я запускаю, и, конечно, большинство из них относятся к конкретным датам и т. Д. Кодирование выполняется на C # в ASP.net на стандартном сервере Windows 2003. Он использует Informix CSDK для подключения через .Net Data Adapter, который поставляется вместе с CSDK. Сервер выполняет Informix 10 на сервере AIX 5.2.
Что странно, так это то, что каждый раз, когда мы запускаем и останавливаем Informix или перезагружаем сервер и т. Д., Кажется, что Informix решает изменить способ обработки даты через CSDK. Если он в настоящее время ожидает MM / DD / YYYY, то в конечном итоге он решит после того, как вышеупомянутая ситуация, что хочет его в YYYY / MM / DD. Обычно это приводит к ошибке «Недопустимый месяц в дате». Затем я вхожу в свою функцию форматирования даты (сделанную так, чтобы я мог легко переключаться назад), и вручную меняю ее. Пара отчетов, которые я встроил в обработку этой ошибки, а затем повторите тот же запрос с другим форматом даты. Это, конечно, не идеально, и я бы хотел докопаться до сути!
Вот некоторый вставленный текст из ошибки страницы ASP.net. Спасибо!
Server Error in '/' Application.
ERROR [HY000] [Informix .NET provider][Informix]Invalid month in date
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about theerror and where it originated in the code.
Exception Details: IBM.Data.Informix.IfxException: ERROR [HY000] [Informix .NET provider][Informix]Invalid month in date
Source Error:
Line 479:
Line 480: //aUsage = new IfxDataAdapter(sSelect_Usage, conn);
Line 481: aUsage.Fill(dsUsage, "Usage");
Line 482: aUsage.Dispose();
Line 483: dtUsage = dsUsage.Tables["Usage"];
Source File: D:\Inetpub\reports2.oscarwinski.com\App_Code\IMRShipClass.cs Line: 481
Stack Trace:
[IfxException: ERROR [HY000] [Informix .NET provider][Informix]Invalid month in date]
IBM.Data.Informix.IfxConnection.HandleError(IntPtr hHandle, SQL_HANDLE hType, RETCODE retcode) +26
IBM.Data.Informix.IfxCommand.ExecuteReaderObject(CommandBehavior behavior, String method) +654
IBM.Data.Informix.IfxCommand.ExecuteReader(CommandBehavior behavior) +117
IBM.Data.Informix.IfxCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +4
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +130
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
IMRShipClass.Generate() in D:\Inetpub\reports2.oscarwinski.com\App_Code\IMRShipClass.cs:481
IMRShip.testIMR() in D:\Inetpub\reports2.oscarwinski.com\IMRShip.aspx.cs:114
IMRShip.btnExport2Excel_Click1(Object sender, EventArgs e) in D:\Inetpub\reports2.oscarwinski.com\IMRShip.aspx.cs:259
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082