VB6 与 SQL存储过程的应用

来源:互联网 发布:centos chrome 编辑:程序博客网 时间:2024/06/03 01:51

很多朋友在开发的时候都会与SQL Server打交道,但使用SQL存储过程的却不多。其实好的存储过程可以提供更好的性能,所以我个人的观点是尽量将数据分析、处理的任务交给存储过程完成,而业务上的处理由客户端程序完成。

下面我就把VB6与SQL存储过程应用的一点心得与大家共享。
假如我们有一个这样的存储过程:

CREATE procedure Test
   @InValue varchar(50)
as
 declare @R int
 SET NOCOUNT ON
 
          if @InValue='Y'
             select @R=1
          else
           select @R=0
 return @R
GO

(关于存储过程的建立请大家参见其它文章)。

在VB6中使用存储过程其实很简单,我们需要的东西和普通处理数据时候是一样的。
我们需要一个数据连接Adodb.Connection,一个数据命令Adodb.Command,一个参数对象ADODB.Parameter
如果需要得到返回记录的话就再加一个RecordSet
Dim Conn As New Adodb.Connection
Dim Cmd As New Adodb.Command
Dim Par As ADODB.Parameter
Dim RS As New RecordSet

现在建立连接:
Conn.Open "Provider=MSDASQL;Driver={SQL Server};" & _
                                  "uid=User;pwd=123;database=MyDB;Server=192.168.0.1"

接下来很重要,要设置Command类型为存储过程
Cmd.CommandType=adCmdStoredProc
好了,现在设置Command的数据连接
Set Cmd.ActiveConnection=Conn
以上这些步骤相信了解ADO的朋友都知道,接下来的就是如何执行并取得返回值了。
首先设置数据命令中的参数(注意!存储过程中有几个参数就要定义几个参数,不要多也不要少)
现在设置用于得到存储过程中Return @R  返回值的参数,名字可以随便起
要注意的是adInteger表示参数是Integer类型,adParamReturnValue表示为返回参数。
Set par = Cmd.CreateParameter("RetVal", adInteger, adParamReturnValue)
Cmd.Parameters.Append par
接下来设置存储过程中@InValue 参数,名字可以随便起,但最好用与存储过程中同样的名字
要注意的是adChar表示参数是Char类型,adParamlnput表示为输入参数,20表示长度,"Y"表示参数值。

Set par = Cmd.CreateParameter("InValue",  adChar, adParamInput, 20, "Y")
Cmd.Parameters.Append par

现在参数已经设置完成了,接下来执行SQL吧
Cmd.CommandText = "Test"
Set DS=Cmd.Execute

OK,运行完了,现在看看结果吧
MsgBox Cmd.Parameters("RetVal").Value
最后别忘了关闭连接以及释放资源。
Conn.Close
Set Cmd=Nothing
Set Conn=Nothing
Set DS=Noting

至此我们就完成了一个简单的存储过程的调用,下面补充一点经验
1。返回参数可有可无,根据需要决定,但是如果使用的时候最好放在Command第一位设置。
2。应该按照与存储过程中的参数顺序定义Command参数。
3。如果不希望获得返回值也可以直接在CommandText中写入参数,例如Cmd.CommandText="Test 'Y'"
4。文章里面没写关于OutPut参数返回值得获得,实现方法就是在添加一个Command参数属性为adParamOutput,就可以了,这个给你留个发挥空间,我就不写了:-)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大学生论文检测系统忘记密码怎么办 快手实验室没有k歌怎么办 皮肤一到冬天就会起皮脱落怎么办 嘴上的皮撕破了怎么办 身体皮肤干燥起皮怎么办 把公司数据库弄宕机了怎么办 地铁上临时变站怎么办 大学实践课挂了怎么办 军训的人长得矮怎么办 军训脸被晒黑了怎么办 晚上吃了油炸的怎么办 楼梯又陡又窄怎么办 小孩不认真做作业怎么办 水厂出水水质不达标怎么办 野猪铁夹子夹到怎么办 燃气灶开孔尺寸大了怎么办 苹果电脑视频显示缺少插件怎么办 安装拼多多显示校验失败怎么办 中央庭黑盒被抢怎么办 lab值a值偏高怎么办 橱房管道堵死了怎么办 微信被别的手机同步登录怎么办 计算机机房空调坏了怎么办 被蝎子蛰了怎么办怎么处理? 月嫂走了孩子闹怎么办 转业军人自建房有困难怎么办 转业军人没配偶想异地安置怎么办 转业军人档案和身份证不符怎么办 转业军人个人资被单位遗失怎么办 空军飞行学员停飞后怎么办 2020年不脱贫的农户怎么办 马自达8停产后配件怎么办 钢铁雄心3没将领怎么办 江苏低于二本线怎么办 电工证快过期了怎么办 天正建筑打不开高版本的图纸怎么办 打开天正只显示cad怎么办 天正软件显示过期了怎么办 四岁宝宝经常吐怎么办 穿越火线登陆不上去怎么办 猫猫呕吐带血怎么办