微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VB6中数据库参数化查询的技巧

通常对数据库查询和操作,大家习惯于拼接sql语句,在论坛上也经常有拼接sql语句方面的问题,让许多初学者深感头痛,即使是老手,遇到复杂的拼接也难免会出错。其实访问数据库我们有更好的选择,这就是参数化查询,这种方法高效安全,又可以省掉程序中拼接sql的麻烦。不过呢,这方面的介绍不是很多,有介绍通常的方法似乎比较烦琐,不能写成通用的方法函数,所以好象使用的人比较少。最近小小的研究了一下,有所发现,备忘在此,共大家参考:

以下示例,基于xp sp3 + ADO2.8 + sql server 2000 (或者Access 2003)
常见的方法

从上面的示例可见,要将参数化查询写成一个通用的方法函数,的确有点困难。在尝试过程中,我偶然发现,其实cmd.Parameters这个集合,有些数据库存引擎提供了自动序列化的功能,并不要一项项的Append。而且效率远高于Append方法,以下是示例:

这个方法同样也可以用于sql数据库的存储过程,只是要注意二点:一是存储过程的用户一个参数的序号是1,序号0参数已经用于存储过程内部的事务;二是输出参数不用赋值。
我这儿的活就是程序要同时访问不同平台的数据库,总想找出一个通用高效安全的方法,所以才有以上的发现,这样,虽然不是所有数据引擎都提供Parameters的序列化,但结合vb6提供的多态性,总算包装了一个适用目前要求的dll。
好了,上面只是一点编程心得,还有许多要完善的地方,有兴趣的可以继续深入。

(另外,示例代码是整理出来的思路,没有实测,可能有错误,只供参考...)

原文地址:https://www.jb51.cc/vb/261583.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐