首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅64位应用程序中的SQL溢出异常

仅64位应用程序中的SQL溢出异常
EN

Stack Overflow用户
提问于 2014-01-09 08:59:22
回答 1查看 708关注 0票数 0

我有一个运行在AS400上的ODBC数据库。我已经创建了一个连接字符串来连接到数据库并运行查询。当我将程序编译成32位时,我的所有查询都运行得很好,但当我把它们编译成64位时,我得到了一个溢出异常。不幸的是,我不得不把我的程序编译成64位。

是什么导致了这个问题?我该如何解决它?

更多信息:

我使用的驱动程序是iSeries Access ODBC driver

我的所有数据库列要么是字符串,要么是小数

我使用的是连接字符串,而不是DNS

我使用的连接字符串是

"Driver={iSeries Access ODBC驱动程序};uid=XXX;data provider=ODBC;system=XXX;dbq=XXX;pwd = XXX“

我很感谢你的帮助。

代码如下所示:

代码语言:javascript
复制
MPDCHFTableAdapter configs = new MPDCHFTableAdapter();
variants = configs.GetDataByProduct("98.M1BODY");  

堆栈跟踪为:

代码语言:javascript
复制
System.OverflowException was unhandled
  HResult=-2146233066
  Message=Arithmetic operation resulted in an overflow.
  Source=System.Data
  StackTrace:
       at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i)
       at System.Data.Odbc.OdbcDataReader.GetFieldType(Int32 i)
       at System.Data.ProviderBase.SchemaMapping.SetupSchemaWithoutKeyInfo(MissingMappingAction mappingAction, MissingSchemaAction schemaAction, Boolean gettingData, DataColumn parentChapterColumn, Object chapterValue)
       at System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter adapter, DataSet dataset, DataTable datatable, DataReaderContainer dataReader, Boolean keyInfo, SchemaType schemaType, String sourceTableName, Boolean gettingData, DataColumn parentChapterColumn, Object parentChapterValue)
       at System.Data.Common.DataAdapter.FillMappingInternal(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue)
       at System.Data.Common.DataAdapter.FillMapping(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue)
       at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
       at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
       at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
       at M3DataSorting.M3DataTableAdapters.MPDCHFTableAdapter.GetDataByProduct(String QIPRNO) in u:\Visual Studio 2012\Projects\M3DataSorting\M3DataSorting\M3Data.Designer.cs:line 8280
       at M3DataSorting.Program.update98SLURRY() in u:\Visual Studio 2012\Projects\M3DataSorting\M3DataSorting\Program.cs:line 314
       at M3DataSorting.Program.Main(String[] args) in u:\Visual Studio 2012\Projects\M3DataSorting\M3DataSorting\Program.cs:line 61
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
EN

回答 1

Stack Overflow用户

发布于 2014-06-19 03:09:07

我发现使用OLE驱动程序而不是ODBC可以避免这种问题的发生。不过,我仍然不确定问题出在哪里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21009790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档