随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

VB6:通过ADO访问Oracle存储过程返回的结果集

微软的MDAC中oledb for oracle 驱动——对过程参数:估计:位置绑定

  1. 该驱动最新支持到Oracle8i的水平,且不再更新了
  2. 使用该驱动。只能使用ODBC的存储过程调用方式: "{call procename (?,?,....)}"
  3. 只能支持返回一个记录集
  4. 该记录集所在的形式sys_refcursor参数可以是最后一个参数 或者是 倒数第二个参数
  5. 不支持调用时省略具有默认值的参数!这使得Oracle过程扩展——添加后续默认参数变得困难——必须修改调用该过程的程序!!!
  6. 必须利用ado的command对象调用,ADO自动将该过程返回的记录集绑定到ado返回的recordset对象上
  7. 使用该驱动,无需特殊设置。
  8. 注意:我们可能注意到有种说法,使用 "{call procename (?,{reseltset 0,io_cursor},?,....)}"的方式——应该是使用ODBC oledb的调用方式



Oracle的ODAC中oledb 驱动——对过程参数只支持位置绑定

  1. 该驱动不断更新
  2. 使用该驱动。可以使用ODBC的存储过程调用方式: "{call procename (?,?,....)}";还可以使用Oracle的调用方式:"begin  procename (?,?,....) ; end;"。但为了获得返回的记录集,必须使用ODBC方式
  3. 支持返回多个记录集,Recordset.NextRecordset()
  4. 该记录集所在的形式sys_refcursor参数可以是任意位置
  5. 支持过程的默认参数
  6. 必须利用ado的command对象调用,自动将该记录集绑定到返回的ado的recordset对象上,通过recordset对象的nextrecordset访问其他记录集
  7. 使用该驱动,必须设置connection对象或command对象的properties("PLSQLRSet")=true
  8. 支持更多的Oracle特有的数据类型,具有更高的效率

 

 

posted on   jinzhenshui  阅读(1024)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示