Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net EOF转炉不一致。。异常偶数记录集在七台计算机中只有一台计算机上的记录计数大于一_.net_Sql Server 2012_Com_Vb6_Adodb - Fatal编程技术网

.net EOF转炉不一致。。异常偶数记录集在七台计算机中只有一台计算机上的记录计数大于一

.net EOF转炉不一致。。异常偶数记录集在七台计算机中只有一台计算机上的记录计数大于一,.net,sql-server-2012,com,vb6,adodb,.net,Sql Server 2012,Com,Vb6,Adodb,我们有一个以.NET4.7作为WebAPI的应用程序,一些关键业务逻辑在VB6-COM中 ADODB interop DLL用于将记录集传递给COM对象以执行进一步的业务逻辑 使用SQL Server 2012R2 下面是C代码 调用dataManager.Process(记录集)之前如果调用recordSet.MoveFirst()应用程序,请不要在EOF和BOF为真时出错,否则它总是抛出EOF BOF为真 令人惊讶的是,七台机器中只有一台例外,我们检查.net版本、windows updat

我们有一个以.NET4.7作为WebAPI的应用程序,一些关键业务逻辑在VB6-COM中

ADODB interop DLL用于将记录集传递给COM对象以执行进一步的业务逻辑

使用SQL Server 2012R2

下面是C代码

调用
dataManager.Process(记录集)之前如果调用
recordSet.MoveFirst()
应用程序,请不要在EOF和BOF为真时出错,否则它总是抛出EOF BOF为真

令人惊讶的是,七台机器中只有一台例外,我们检查.net版本、windows update、IIS中的工作池设置都是相同的。两台机器的连接字符串保持不变,ADODB、ADO和VBVM版本都相同

在两台机器上部署了相同的代码,下面是每台机器的日志

机器A:收到ADODB。记录集的BOF=False和EOF=False

机器B:收到ADODB。记录集的BOF=False和EOF=True

机器B面临异常,而机器A没有。

我们面临的最大问题是,是什么让这个记录位置重置?


是否有任何系统级/全局配置或设置需要在不更改代码的情况下解决此异常?

True@Charlieface但为了不影响业务,当前的优先级是短期重用。如果您认为这是VB6问题,你应该在问题中添加相关的VB6代码。你如何确定你在有问题的电脑上有完全相同的情况?还有什么不一样的吗?像数据库连接字符串?输入数据?就我个人而言,我想在调用前后加入一些调试日志,但无法确保这一点@StayOnTarget在两台机器上部署了相同的代码,下面是每台机器的日志,用于上面列出的相同代码。机器A:收到ADODB。记录集的BOF=False和EOF=False。机器B:收到ADODB。记录集的BOF=False和EOF=True。机器B面临异常,而机器A则没有。我们有一个最大的问题,是什么使这个记录位置重置了?需要尝试一些事情:运行SQL事件探查器跟踪,并在建立连接时比较这两个连接的配置属性。通过MDAC可再发行文件重新安装ADODB。
Recordset recordSet;
recordSet = metaData.GetMetadata();
....
....
//This method adds two rows in iteration
FillDefaultTwoRows(recordSet); 

// COM object processes the recordset and this error out with EOF BOF
// even after having minimum one row in it.
dataManager.Process(recordSet);