gpt4 book ai didi

c# - 日期中的月份无效 - Informix 中的日期格式偶尔会恢复

转载 作者:可可西里 更新时间:2023-11-01 10:52:26 25 4
gpt4 key购买 nike

所以我们有一个运行 ERP 系统的 AIX(呃)服务器。这个系统的内置报告很糟糕,所以我当然要负责构建我们需要的报告。

我运行了很多报告,当然大部分都是针对特定日期等的。编码是在 Windows 2003 Standard Server 机器上的 ASP.net 中运行的 C# 中完成的。它使用 Informix CSDK 通过 CSDK 附带的 .Net 数据适配器进行连接。服务器在 AIX 5.2 服务器上运行 Informix 10。

奇怪的是,每当我们启动和停止 Informix 或重新启动服务器等时,Informix 似乎决定更改它通过 CSDK 处理日期的方式。如果它当前期望 MM/DD/YYYY 那么它最终会在上述情况之后决定在 YYYY/MM/DD 中​​需要它。这通常会给我一个“日期中的无效月份”错误。然后我进入我的 dateformat 函数(使我可以轻松地来回切换)并手动更改它。我在处理此错误时构建了一些报告,然后使用其他格式的日期重试相同的查询。这当然不太理想,我想查个水落石出!

这是一些来自 ASP.net 页面错误的粘贴文本。谢谢!

Server Error in '/' Application.ERROR [HY000] [Informix .NET provider][Informix]Invalid month in dateDescription: 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 dateSource 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: 481Stack 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) +1565Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082 

最佳答案

日期格式由客户端控制,而不是服务器。显然它有一个默认值(美国格式),但每个客户都可以指定它希望使用的格式。这是通过设置 DBDATE environment variable 来完成的。 . (如果您使用的是语言环境,还有 GL_DATE。)

如果日期格式发生了变化,你应该检查这个环境变量的值。在某些情况下它是由您的中间件设置的吗?

关于c# - 日期中的月份无效 - Informix 中的日期格式偶尔会恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1208377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com