所以我们有一个运行ERP系统的AIX(ugh)服务器。 这个系统的内置报告很糟糕,所以我当然要负责构build我们需要的报告。
我有很多报告运行,大部分当然是针对特定的date等等。编码是在Windows 2003标准服务器框中的ASP.net中运行的C#中完成的。 它使用Informix CSDK通过CSDK附带的.Net数据适配器进行连接。 服务器在AIX 5.2服务器上运行Informix 10。
奇怪的是,无论何时我们启动和停止Informix或重新启动服务器等,似乎Informix都决定通过CSDK更改处理date的方式。 如果目前正在等待MM / DD / YYYY,那么在上述情况之后最终会决定是在YYYY / MM / DD。 这通常最终会给我一个“无效的月份date”错误。 然后我进入我的dateformat函数(让我来回来),手动改变它。 一些报告,我build立在处理这个错误,然后重试与date的其他格式相同的查询。 这当然是不太理想的,我想深究一下!
在AIX 5.3上,语法着色在VIM Editor 6.3中按照预期工作
ActiveMQ 5.9启动脚本?
msemaphore在Linux上?
我怎样才能从UNIX-AIX执行Windowsbatch file?
为每列添加多个值
“/”应用程序中的服务器错误。
错误[HY000] [Informix .NET提供程序] [Informix]date中的月份无效
说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。
exception详细信息:IBM.Data.Informix.IfxException:错误[HY000] [Informix .NET提供程序] [Informix]date中的月份无效
源错误:
479行:
480行:// aUsage = new IfxDataAdapter(sSelect_Usage,conn);
481行:aUsage.Fill(dsUsage,“Usage”);
第482行:aUsage.dispose();
第483行:dtUsage = dsUsage.Tables [“Usage”];
源文件:D: Inetpub reports2.oscarwinski.com App_Code IMRShipClass.cs行:481
堆栈跟踪:
[IfxException:错误[HY000] [Informix .NET提供程序] [Informix]date无效月份]
IBM.Data.Informix.IfxConnection.HandleError(IntPtr hHandle,sql_HANDLE hType,RETCODE retcode)+26
IBM.Data.Informix.IfxCommand.ExecuteReaderObject(CommandBehavior行为,String方法)+654
IBM.Data.Informix.IfxCommand.ExecuteReader(CommandBehavior行为)+117
IBM.Data.Informix.IfxCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior行为)+4
System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集,DataTable []数据表,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)+130
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)+287
System.Data.Common.DbDataAdapter.Fill(数据集数据集,stringsrcTable)+92
IMRShipClass.Generate()在D: Inetpub reports2.oscarwinski.com App_Code IMRShipClass.cs:481
IMRShip.testIMR()在D: Inetpub reports2.oscarwinski.com IMRShip.aspx.cs:114
IMRShip.btnExport2Excel_Click1(对象发件人,EventArgs e)在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(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterasyncPoint)+1565
版本信息:Microsoft .NET Framework版本:2.0.50727.3082; ASP.NET版本:2.0.50727.3082
确定用于在* ix操作系统上构build共享对象的编译器和版本
如何从进程返回内存到操作系统
如何在不使用KRB5CCNAME的情况下在客户端上设置Kerberos的default_ccache_name属性?
strtok分段错误,只是在input文件的第一行为空时出现分段错误
日期格式由客户端而不是服务器控制。 显然它有一个默认的(美国格式),但每个客户端可以决定它希望使用的格式。 这是通过设置DBDATE环境变量来完成的。 (如果使用语言环境,也有GL_DATE 。)
如果日期格式已经切换,您应该检查此环境变量的值。 在某些情况下是否由您的中间件设置?
Urgh! .NET不是我的强项 – 你可能不得不适应我说的正确工作。
在Windows上,不管是好还是坏,都有一个名为SETNET32的Informix实用程序,可用于为连接到Informix数据库的Windows程序设置与Informix相关的环境变量。 你没有提到你是否使用这个设置了任何东西。 调查是否由Informix .NET提供程序使用。
出现问题时,您也不会提及AIX框中的IDS服务器实例是否重新启动。 我不假设。 (如果有分析,分析可能会有所不同。)
控制日期格式的主要环境变量是DBDATE。 它需要各种符号,例如:
DBDATE=dmy4/ # 30/07/2009 DBDATE=mdy4/ # 07/30/2009 DBDATE=y4md- # 2009-07-30 DBDATE=mdy20 # 073009
不要使用最后一个。 如果DBDAT E的值有变化,这可能会解决您的一些问题,并且设置DBDATE可能会解决您的问题。
如果没有设置DBDATE ,还有其他变量会影响日期解释; 这些包括CLIENT_LOCALE和DB_LOCALE ,甚至包括GL_DATE 。 不过, DBDATE的优先级最高,是大部分人最常设定的。
这可能是不相关的,但我收到了同样的错误。 我最后把我的sql中的单引号改为括号。 我正在使用参数化的sql。
SELECT id,descriptor FROM Foo WHERE descriptor >= '?' 变
SELECT id,descriptor FROM Foo WHERE descriptor >= (?)
这可能不是你的特定设置的情况,但是我已经看到服务器更改日志格式报告给数据库时,管理员已经将其区域设置为不同于默认值,但只有当他们登录! 您可能希望检查系统上每个用户的国家/地区设置。
DB2 / Informix覆盖客户端日期格式。 您联系您的Db2管理员,并在所有服务器端设置日期格式。 在AS400(DB2)中,我们遇到了完全相同的问题,DB管理员从来没有接受过你的情况。 一旦从IBM网站获取ISO日期格式语法并提供给DB2管理员,他就对其进行了更改。 之后,我们的程序与日期一起工作良好。
祝你好运。
在运行报表的客户端应用程序和其他每个客户端中都设置DBDATE=MDY4/ 。
启动informix实例,而不是informix用户….它解决了我的PB和我的夜晚哈哈
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。