当前位置:首页 » 存储配置 » vb调用sql存储过程

vb调用sql存储过程

发布时间: 2022-07-24 10:58:03

Ⅰ 如何在VB中调用并运行sql的储存过程

我给你两种简单的方法:
1.
过程
CREATE
PROCEDURE
cyPFindWaitExecSO
----按货品编码查出没有执行销售订单(不包括
CANCEL
作废,
stoped
中止)
@GOODSCODE
VARCHAR(100)
AS
SELECT
SO.WDATE,so.BILLCODE,a.QTY,a.EXEQTY,a.QTY-a.EXEQTY
WaitExec,c.CLIENTNO,a.USERDEF1
FROM
(SELECT
*
FROM
S_ORDERd
WHERE
EXEQTY<
qty
AND
STOPED=0
AND
canceled=0
AND
GOODSID=
(SELECT
GOODSID
FROM
GOODS
g
WHERE
CODE
=
@GOODSCODE))AS
a
LEFT
JOIN
S_ORDER
so
ON
so.BILLID=
A.BILLID
LEFT
JOIN
CLIENT
c
ON
c.CLIENTID=so.CLIENTID
调用
cyPFindWaitExecSO是一个查询存储过程,
GOODSCODE
是一个参数
Tsql
=
"exec
cyPFindWaitExecSO
'"
&
goodscode
&
"'"
Rs.Open
Tsql,
DBcn1
cyPFindWaitExecSO是一个查询存储过程,
GOODSCODE
是一个参数
2.
过程
CREATE
PROC
ConfirmIDcardUsering
@card_id
NVARCHAR(16),
@emp_id
NVARCHAR(12),
@outStr
NVARCHAR(50)
OUTPUT
AS
IF
EXISTS(SELECT
Etime
FROM
KQID
k
WHERE
k.card_id=@card_id
AND
etime
IS
NULL)
SET
@outStr
=
'卡在正常使用中'
ELSE
if
exists(SELECT
Etime
FROM
KQID
k
WHERE
k.emp_id=
@emp_id
AND
etime
IS
NULL)
SET
@outStr
=
'该员工已有卡在用'
else
SET
@outStr=
''
GO
调用:
Set
Cmd
=
New
ADODB.Command
With
Cmd
.ActiveConnection
=
dbcn
'数据连接字符串
.CommandType
=
4
.CommandText
=
"ConfirmIDcardUsering"
'过程名'
.Parameters.Item("@card_id").Value
=
Card_id
'参数一'
.Parameters.Item("@emp_id").Value
=
emp_id
'参数二'
.Execute
TestS
=
.Parameters.Item("@outStr").Value
'反回的函数'
End
With
Set
Cmd
=
Nothing

Ⅱ VS2008环境下VB调用SQL存储过程

楼上同学没理解楼主的问题.

给参考代码:

SqlConnection conndb= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
conndb.Open();

SqlDataAdapter strselect = new SqlDataAdapter("存储过程的名字",conndb);

strselect.SelectCommand.CommandType = CommandType.StoredProcere;

DataSet ds = new DataSet();

strselect.Fill(ds);

DlstBuycatalog.DataSource =ds;

DlstBuycatalog.DataBind();

conndb.Close();

Ⅲ VB 调用SQL存储过程问题

感觉将所有字符串一起传到sqlServer中,在存储过程中进行处理比较好,而不是将执行sql存储过程放在一个循环里

Ⅳ VB中ADODB的Connection对象Execute方法调用SQL存储过程方法

Set adoRs = adoConn.Execute("exec Book_SelectName 'sqlarg'")
改为
Set adoRs = adoConn.Execute("exec Book_SelectName '" & sqlArg & "'")

Ⅳ VB 调用SQL SERVER 存储过程

'引用Microsoft ActiveX Data Objects 2.8 Library
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cnn_c As New ADODB.Command
Dim cnn_p As ADODB.Parameter
Set Cnn = New ADODB.Connection
Set Rs = New ADODB.Recordset
'On Error Resume Next
Cnn.ConnectionString = ConnStr '连接字符串
With Cnn
.CursorLocation = adUseClient
.Open '连接
End With
Set Cnn_c.ActiveConnection = Cnn
With Cnn_c
.CommandType = adCmdStoredProc '命令类型:存储过程
.CommandText = "AA" '存储过程名
End With
Set cnn_p = Cnn_c.CreateParameter("ReTurn", adInteger, adParamReturnValue)
Cnn_c.Parameters.Append cnn_p '添加参数ReTurn(返回值)
Set Rs = Cnn_c.Execute '执行
MsgBox Rs.RecordCount '显示记录数
If Rs.RecordCount > 0 Then
Rs.Close
End If
Cnn.Close
Set cnn_p = Nothing
Set Cnn_c = Nothing
Set Rs = Nothing
Set Cnn = Nothing

Ⅵ 急!VB调用sql存储过程问题,定义了两个存储过程但是程序只调用插入那个存储过程,求解

1、首先不知道你写的两个存储过程 "MyAdd" 和"MyUpdate" 里面的内容是怎么写的?正确与否?你要在SQL中进行验证,然后再到VB中进行调用

其次在调用有参数的存储过程时,要注意参数定义类型及参数的大小。
也就是说:如果参数是字符型,在传送参数时要注意限制其字符的大小,如果参数是日期型变量,你用 Trim(TextBirthday.Text) 可行否?如果是数字型呢?
所以没看到你的存储过程的话,要找到程序中的错误就难了...

2、我一般调用存储过程的步骤如下:
(A) 如:
定义一个实现“退货单”的审核存储过程.
CREATE PROCEDURE proCheckOutT203(@OrderNum varchar(12),@OperName varchar(10))
AS
..........
BEGIN TRAN
--- 中间复杂的运算省略
--- 设置单据审核标志
UPDATE T203 SET F6=@OperName, F7=GetDate() WHERE F1=@OrderNum
COMMIT
这里的参数OrderNum 为不超过12个字符型,OperName 为10位字符型

(B) 在VB 中调用
Dim adoConn As New ADODB.Connection

adoConn.Open adoConnStr
adoConn.Execute "proCheckOutT203 '" + Trim(Txt(0)) + "','" + UserName + "'"

其中:
adoConnStr 连接SQL的连接字符串
Trim(Txt(0)) 为单据编号 的 TextBox 控件
UserName 为操作员姓名的变量

一般这样就OK 了....

Ⅶ VB调用SQL中的存储过程,并将结果显示在MSFlexGrid控件中。急等!!!

这个简单,先把数据读出来 然后再显示就行了,
帖一段自己的程序你看看
Private Sub Command2_Click()
link
With adoRes
i = 1
While Not .EOF
MSFlexGrid1.TextMatrix(i, 0) = i
MSFlexGrid1.TextMatrix(i, 1) = !桩号
MSFlexGrid1.TextMatrix(i, 2) = !地面高程
MSFlexGrid1.TextMatrix(i, 3) = !设计高程
MSFlexGrid1.TextMatrix(i, 5) = !控制点高程
If !设计高程 = 0 Then
MSFlexGrid1.TextMatrix(i, 4) = 0
Else

MSFlexGrid1.TextMatrix(i, 4) = !填挖高
End If
ReDim Preserve zh(i), dmgc(i), sjgc(i), twg(i), kzdgc(i)
zh(i) = !桩号: dmgc(i) = !地面高程: sjgc(i) = !设计高程: twg(i) = !填挖高: kzdgc(i) = !控制点高程
i = i + 1
If i = MSFlexGrid1.Rows Then
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
End If
.MoveNext
Wend
End With
End Sub
我这个程序中用的MSFlexGrid中的行数是动态的,按需增加

Ⅷ vb调用sql存储过程

'引用MicrosoftActiveXDataObjects2.8Library
DimCnnAsADODB.Connection
DimRsAsADODB.Recordset
DimCnn_cAsNewADODB.Command
Dimcnn_pAsADODB.Parameter
dimCourseIDasstring,CustomerIDasstring
SetCnn=NewADODB.Connection
SetRs=NewADODB.Recordset
'OnErrorResumeNext
Cnn.ConnectionString=ConnStr'连接字符串
WithCnn
.CursorLocation=adUseClient
.Open'连接
EndWith
SetCnn_c.ActiveConnection=Cnn
WithCnn_c
.CommandType=adCmdStoredProc'命令类型:存储过程
.CommandText="sy_select_course"'存储过程名
EndWith
Setcnn_p=Cnn_c.CreateParameter("ReTurn",adInteger,adParamReturnValue)
Cnn_c.Parameters.Appendcnn_p'添加参数ReTurn(返回值)
Setcnn_p=Cnn_c.CreateParameter("CustomerID",adVarChar,adParamInput,4,CustomerID)
Cnn_c.Parameters.Appendcnn_p'添加参数CustomerID
Setcnn_p=Cnn_c.CreateParameter("CourseID",adVarChar,adParamInput,4,CourseID)
Cnn_c.Parameters.Appendcnn_pSet'添加参数CourseID
Rs=Cnn_c.Execute'执行
IfRs.RecordCount>0Then
'这里处理查询
Rs.Close'关闭记录集
EndIf
Cnn.Close'关闭连接
Setcnn_p=Nothing
SetCnn_c=Nothing
SetRs=Nothing
SetCnn=Nothing

Ⅸ VB调用SQL存储过程问题

先在查询分析器里手动给参数付值,看看是不是存储过程的问题。
再检查一下是不是代码的问题。

Ⅹ VB中访问存储过程的几种办法

当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。■调用存储过程,可以认为是一个三层结构。这使你的程序易于维护。如果程序需要做某些改动,你只要改动存储过程即可■你可以在存储过程中利用Transact-SQL的强大功能。一个SQL存储过程可以包含多个SQL语句。你可以使用变量和条件。这意味着你可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。■最后,这也许是最重要的,在存储过程中可以使用参数。你可以传送和返回参数。环境:WinXP VB6 sp6 SqlServer2000数据库:test表:UsersCREATETABLE[dbo].[users]([id][int]IDENTITY(1,1)NOTNULL,[truename][char](10)COLLATEChinese_PRC_CI_ASNULL,[regname][char](10)COLLATEChinese_PRC_CI_ASNULL,[pwd][char](10)COLLATEChinese_PRC_CI_ASNULL,[sex][char](10)COLLATEChinese_PRC_CI_ASNULL,[email][text]COLLATEChinese_PRC_CI_ASNULL,[jifen][decimal](18,2)NULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]GOALTERTABLE[dbo].[users]WITHNOCHECKADDCONSTRAINT[PK_users]PRIMARYKEYCLUSTERED([id])ON[PRIMARY]GO存储过程select_usersCREATEPROCEDUREselect_users@regnamechar(20),@numrowsintOUTPUTASSelect*fromusersSELECT@numrows=@@ROWCOUNTif@numrows=0return0elsereturn1GO存储过程insert_usersCREATEPROCEDUREinsert_users@truenamechar(20),@regnamechar(20),@pwdchar(20),@sexchar(20),@emailchar(20),@jifendecimal(19,2)ASinsertintousers(truename,regname,pwd,sex,email,jifen)values(@truename,@regname,@pwd,@sex,@email,@jifen)GO在VB环境中,添加DataGrid控件,4个按钮,6个文本框代码简单易懂。‘引用microsoftactivedataobject2..ConnectionDimrs1AsADODB.RecordsetDimrs2AsADODB.RecordsetDimrs3AsADODB.RecordsetDimrs4AsADODB.RecordsetDimcmdAsADODB.CommandDimparamAsADODB.Parameter'这里用第一种方法使用存储过程添加数据PrivateSubCommand1_Click()Setcmd=NewADODB.CommandSetrs1=NewADODB.Recordsetcmd.ActiveConnection=mConncmd.CommandText="insert_users"cmd.CommandType=adCmdStoredProcSetparam=cmd.CreateParameter("truename",adChar,adParamInput,20,Trim(txttruename.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("regname",adChar,adParamInput,20,Trim(txtregname.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("pwd",adChar,adParamInput,20,Trim(txtpwd.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("sex",adChar,adParamInput,20,Trim(txtsex.Text))cmd.Parameters.AppendparamSetparam=cmd.CreateParameter("email",adChar,adParamInput,20,Trim(txtemail.Text))cmd.Parameters.Appendparam‘下面的类型需要注意,如果不使用adSingle,会发生一个精度无效的错误Setparam=cmd.CreateParameter("jifen",adSingle,adParamInput,50,Val(txtjifen.Text))cmd.Parameters.AppendparamSetrs1=cmd.ExecuteSetcmd=NothingSetrs1=NothingEndSub'这里用第二种方法使用存储过程添加数据PrivateSubCommand2_Click()Setrs2=NewADODB.RecordsetSetcmd=NewADODB.Commandcmd.ActiveConnection=mConncmd.CommandText="insert_users"cmd.CommandType=adCmdStoredProccmd.Parameters("@truename")=Trim(txttruename.Text)cmd.Parameters("@regname")=Trim(txtregname.Text)cmd.Parameters("@pwd")=Trim(txtpwd.Text)cmd.Parameters("@sex")=Trim(txtsex.Text)cmd.Parameters("@email")=Trim(txtemail.Text)cmd.Parameters("@jifen")=Val(txtjifen.Text)Setrs2=cmd.ExecuteSetcmd=NothingSetrs1=NothingEndSub'这里用第三种方法使用连接对象来插入数据PrivateSubCommand4_Click()DimstrsqlAsStringstrsql="insert_users'"&Trim(txttruename.Text)&"','"&Trim(txtregname.Text)&"','"&Trim(txtpwd.Text)&"','"&Trim(txtsex.Text)&"','"&Trim(txtemail.Text)&"','"&Val(txtjifen.Text)&"'"Setrs3=NewADODB.RecordsetSetrs3=mConn.Execute(strsql)Setrs3=NothingEndSub'利用存储过程显示数据‘要处理多种参数,输入参数,输出参数以及一个直接返回值PrivateSubCommand3_Click()Setrs4=NewADODB.RecordsetSetcmd=NewADODB.Commandcmd.ActiveConnection=mConncmd.CommandText="select_users"cmd.CommandType=adCmdStoredProc'返回值Setparam=cmd.CreateParameter("RetVal",adInteger,adParamReturnValue,4)cmd.Parameters.Appendparam'输入参数Setparam=cmd.CreateParameter("regname",adChar,adParamInput,20,Trim(txtregname.Text))cmd.Parameters.Appendparam'输出参数Setparam=cmd.CreateParameter("numrows",adInteger,adParamOutput)cmd.Parameters.AppendparamSetrs4=cmd.Execute()Ifcmd.Parameters("RetVal").Value=1ThenMsgBoxcmd.Parameters("numrows").ValueElseMsgBox"没有记录"EndIfMsgBoxrs4.RecordCountSetDataGrid1.DataSource=rs4DataGrid1.RefreshEndSub'连接数据库PrivateSubForm_Load()SetmConn=NewConnectionmConn.ConnectionString="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;InitialCatalog=Test;DataSource=yang"mConn.CursorLocation=adUseClient'设置为客户端mConn.OpenEndSub'关闭数据连接PrivateSubForm_Unload(CancelAsInteger)mConn.CloseSetmConn=NothingEndSub->

热点内容
第三方服务器做海康存储怎么配置 发布:2024-10-07 00:23:38 浏览:116
文件夹两孔 发布:2024-10-06 23:48:53 浏览:352
ftp工具分析 发布:2024-10-06 23:48:51 浏览:158
服务器被游戏封机器码怎么办 发布:2024-10-06 23:46:10 浏览:161
股票java 发布:2024-10-06 23:38:46 浏览:291
安卓算法 发布:2024-10-06 23:14:20 浏览:184
域名访问404 发布:2024-10-06 23:08:52 浏览:708
访问笔录模版 发布:2024-10-06 22:36:54 浏览:142
多用途编程 发布:2024-10-06 22:35:58 浏览:618
msde2000数据库下载 发布:2024-10-06 22:33:35 浏览:45