vb6+ADO 执行SqlServer存储过程 如何传递表值参数

小噤 2019-01-22 09:12:27
网上说 表值参数是SQLServer2008中的新参数类型,
但VB6是。。。。

我也找了很多资料.没找到例程和资料
看看有没有人遇到过这方面的需求.
...全文
256 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2019-01-24
  • 打赏
  • 举报
回复
https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-4.0/bb675163(v=vs.100) 微软ADO.net文档,下面有配置 SqlParameter 示例。你试试看在ado里面能不能用,建议引用高版本ADO试试,至少的,我猜2008年以前的版本不支持,常见的2.0~2.8版本是2004年以前的吧,看了一下目前系统里面有个6.1,没用过。
小噤 2019-01-24
  • 打赏
  • 举报
回复
引用 3 楼 脆皮大雪糕 的回复:
https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-4.0/bb675163(v=vs.100) 微软ADO.net文档,下面有配置 SqlParameter 示例。你试试看在ado里面能不能用,建议引用高版本ADO试试,至少的,我猜2008年以前的版本不支持,常见的2.0~2.8版本是2004年以前的吧,看了一下目前系统里面有个6.1,没用过。
应该没有的.非.net的ADO文档里都没有143这个类型参数。 不研究了。只是好奇心起 谢谢啦
脆皮大雪糕 2019-01-23
  • 打赏
  • 举报
回复
我的理解,表值参数实际上是一个查询的结果,如果新的ADO支持的话,VB6在参数转换上也会很复杂。 个人建议,新建一个存储过程来调用你的这个目标存储过程。新的这个存储过程要有一个参数传入你的SQL语句,然后根据这个SQL语句(不论是否查询实体表)产生的记录集传递给目标存储过程的表值参数。 如果你是要把一个你在VB里面搞定的数据集(或者数组)传递过去,也可以逐行将其转换为用union all拼接起来的select语句传递进去,令其在新的存储过程中产生一个记录集再往目标存储过程传递。 在2008之前,我们一般用先把数据插入临时表然后由存储过程访问临时表获取数据集来实现相同的效果。
小噤 2019-01-23
  • 打赏
  • 举报
回复
引用 1 楼 脆皮大雪糕 的回复:
我的理解,表值参数实际上是一个查询的结果,如果新的ADO支持的话,VB6在参数转换上也会很复杂。 个人建议,新建一个存储过程来调用你的这个目标存储过程。新的这个存储过程要有一个参数传入你的SQL语句,然后根据这个SQL语句(不论是否查询实体表)产生的记录集传递给目标存储过程的表值参数。 如果你是要把一个你在VB里面搞定的数据集(或者数组)传递过去,也可以逐行将其转换为用union all拼接起来的select语句传递进去,令其在新的存储过程中产生一个记录集再往目标存储过程传递。 在2008之前,我们一般用先把数据插入临时表然后由存储过程访问临时表获取数据集来实现相同的效果。
是的.变通的方法或者委婉的方式有很多 比如直接把储存过程当语句执行 ---------------------------------------------- declare @表值参数 varchar(8000) declare @表值参数 dbo.表值类型 insert into @表值参数 values(....) exec 储存过程 @表值参数=@表值参数 ---------------------------------------------- 我只是单纯的想了解一下有没有实现方法."正常调用"(ADODB.Command Parameters) 估计是没有了.

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧