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,就可以了,这个给你留个发挥空间,我就不写了:-)
- VB6 与 SQL存储过程的应用
- VB6远程调用MS SQL 存储过程
- [sql server]存储过程事务的应用
- T-SQL存储过程的应用
- SQL存储过程的简单应用
- SQL Server 存储过程的应用
- SQL存储过程和事务的应用
- sql存储过程和事务的应用
- VB6下Command获取SQL存储过程返回值
- 【mysql 存储过程】应用存储过程的优点与缺点
- Oracle 函数 与 存储过程 的应用
- 存储过程与触发器的应用
- 存储过程与事务应用的探究
- SQL的存储过程的理解与应用(以mysql为例)
- PL/SQL与存储过程的区别
- sql存储过程及应用
- sql存储过程及应用
- SQL 存储过程简单应用
- J2ME(MIDP1.0)计算float,int,long数值的平方根
- 蜡笔小新的经典恶毒对话
- 在寒冬里努力寻找春天(SP的自述)
- 收藏html打印代码,支持翻页
- 这样也好。
- VB6 与 SQL存储过程的应用
- [转载]学习C++的50个忠告!
- 无毒一身轻——21天改变体质
- [转载]c++编程常用工具集
- GameCube游戏机销售疲软任天堂利润暴跌51%
- XPSP2中如何解决ASP--ADODB.Recordset (0x800A0CB3)当前记录集不支持更新问题
- 合格的工程师应当具备那些知识呢.
- EA极品飞车《地下狂飙2》推出手机版
- [翻译]WTL开发者指南 第4章-WTL快速之旅(1)