VB6.0 調用存儲過程的例子 (前言)
2024-07-21 02:20:55
供稿:網友
vb調用存儲過程的例子 前言
(說明:以下代碼摘自微軟的msdn,經過測試沒問題。)
vb調用存儲過程的方法很多,如利用ado對象的recordset.open方法,ado對象的connection.excute方法等,都可以獲得記錄集信息。本主題討論的是使用parameter對象調用存儲過程,而且可以獲得許多意外的信息。
首先需要在sql server中建立一個存儲過程。請確定已安裝了sql server 2000的任何版本,且含有pubs數據庫。
打開“查詢分析器”,啟動你本地的sqlserver,然后將以下的sql語句copy到所打開的查詢編輯框中。按下“f5”鍵。ok,存儲過程adotestrpe便生成了。
use pubs
go
if exists (select * from sysobjects where id =
object_id('dbo.adotestrpe') and sysstat & 0xf = 4)
drop procedure dbo.adotestrpe
go
create procedure adotestrpe
(
@setrtn int=0 output,
@r1num int=1,
@p1num int=1,
@e1num int=1,
@r2num int=2,
@p2num int=2,
@e2num int=2
)
as
declare @iloop int
declare @printtext varchar(255)
declare @ierrnum int
/* check for no resultsets - needed to get the return value back */
if @r1num + @r2num = 0 select null
/* resultset 1 ******************************* */
if @r1num > 0
begin
set rowcount @r1num
select 'resultset 1' rsnum, title
from pubs..titles
set rowcount 0
end
/* must raise a default error context in which to return the print */
/* statement */
/* (if none present) since print statements are a severity level of */
/*0. */
if (@p1num > 0) and (@e1num = 0) raiserror ("raiserror.perror1",
11, 2)
if @p1num > 0
begin
select @iloop = 0
while @iloop < @p1num
begin
select @iloop = @iloop + 1
select @printtext = 'print.resultset.1: line ' +
convert(char(2), @iloop)
print @printtext
end
end
if @e1num > 0
begin
select @iloop = 0
while @iloop < @e1num
begin
select @iloop = @iloop + 1
select @ierrnum = @iloop + 201000
raiserror ("raiserror.resultset.1", 11, 2)
end
end
/* resultset 2 ******************************* */
if @r2num > 0
begin
set rowcount @r2num
select 'resultset 2' rsnum, title
from pubs..titles
set rowcount 0
end
/* must raise a default error context in which to return the print */
/* statement */
/* (if none present) since print statements are a severity level of */
/* 0. */
if (@p2num > 0) and (@e2num = 0) raiserror ("raiserror.perror2",
11, 2)
if @p2num > 0
begin
select @iloop = 0
while @iloop < @p2num
begin
select @iloop = @iloop + 1
select @printtext = 'print.resultset.2: line ' +
convert(char(2), @iloop)
print @printtext
end
end
if @e2num > 0
begin
select @iloop = 0
while @iloop < @e2num
begin
select @iloop = @iloop + 1
select @ierrnum = @iloop + 202000
raiserror ("raiserror.resultset.2", 11, 2)
end
end
/* return & output ************************************ */
select @setrtn = -1
return @setrtn
go
運行完畢后,若不存在任何錯誤,請關閉“查詢分析器”,然后繼續下面的操作。否則可能是你的sql server 2000沒有安裝正確或copy時出了問題。
打開vb6.0,新建一個工程,默認有一個窗體form1(若沒有請添加一個新的窗體,命名為form1),在該窗體中添加一個commandbutton。保存該工程。
,歡迎訪問網頁設計愛好者web開發。