Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
Sql server VB.Net升级存储过程调用Oracle数据库moRs.Open(moCmd)_Sql Server_Vb.net_Oracle - Fatal编程技术网

Sql server VB.Net升级存储过程调用Oracle数据库moRs.Open(moCmd)

Sql server VB.Net升级存储过程调用Oracle数据库moRs.Open(moCmd),sql-server,vb.net,oracle,Sql Server,Vb.net,Oracle,我有一个用VB6编写的程序,我们正在尝试转换为VB.Net。在Microsoft SQL 2012和Oracle中使用此.Open()方法调用存储过程时,Microsoft SQL可以正常执行,而Oracle则不能。下面是一段代码: Private moRs As ADORecordSetHelper = New ADORecordSetHelper("") Private moCmd As DbCommand 'where moCmd has the procedure cal

我有一个用VB6编写的程序,我们正在尝试转换为VB.Net。在Microsoft SQL 2012和Oracle中使用此.Open()方法调用存储过程时,Microsoft SQL可以正常执行,而Oracle则不能。下面是一段代码:

Private moRs As ADORecordSetHelper =  New ADORecordSetHelper("")       
Private moCmd As DbCommand 'where moCmd has the procedure call and parameters
   moRs.Open(moCmd)
下面是.Open()的定义

这一切都适用于Microsoft SQL,但不适用于Oracle。我发现execute moCmd.ExecuteNonQuery()可以执行存储过程,但因此我需要在某些实例中获取记录集

有没有一种方法可以同时为Microsoft和Oracle使用moRs.Open(moCmd)?如果没有,我如何才能完成同样的任务,找回记录集


更新:我发现.Open()方法使用的是Execute Reader,它对于严格返回记录集的Microsoft SQL来说运行良好。Oracle存储过程正在插入行并从该过程返回值。在同一个对象上执行Execute-NonQuery(moCmd)执行得很好,但是我能从这个方法中得到的只是受影响的行数,而不是我需要的其他信息。关于为什么Execute Reader不工作的思考?我的搜索表明它应该适用于所有类型的SQL;插入、删除、更新等。

嗯,我个人会把数据层全部去掉,然后使用.net。这只会给你带来麻烦。不过这可能会对你有所帮助,@TonyHopkinson我同意。真的,程序应该重写,但是没有时间了。实际上,您发送给我的链接是我用来从VB6升级到.Net的应用程序。帮不了我什么忙,现在不是时候。。。我对此有一个固定的答复。“永远没有足够的时间把它做好,但总是有足够的时间再做一次”。该代码是否与直接sql一起工作,如果是,可能是exec my_sp。。。我会做的。
Public Sub Open(command As System.Data.Common.DbCommand)         
   Member of UpgradeHelpers.DB.ADO.ADORecordSetHelper