VB调用存储过程
VB_Net调用存储过程并得到返回值
(@sUserID,@sClaimMethod,@sInvoiceNum,@sInvoiceDate,@sBuyCity)
调用存储过程并得到返回值
//存储过程代码
CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum
varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))AS
InvoiceID = CMD.Parameters(@sInvoiceID).Value.ToString()
CMD.Dispose()
Catch ex As Exception
Response.Write(ex.ToString())
Finally
CN.Close()
CMD.Parameters(@sInvoiceDate).Value = InvoiceDate.SelectedDate.Date
CMD.Parameters.Add(New SqlParameter(@sBuyCity, SqlDbType.VarChar, 50))
CMD.Parameters(@sBuyCity).Value = BuyCity.Text
return @@IDENTITY
GO
//调用存储过程代码
Dim CN As New SqlConnection()
vb调用存储过程的返回值
vb调用存储过程的返回值VB调用存储过程的返回值在VB中,调用存储过程是一种非常常见的操作。
存储过程可以用于执行一系列的数据库操作,并返回一个结果集、一个标志值或者两者的组合。
通过调用存储过程,我们可以在VB程序中对数据库进行相应的操作和查询。
本文将详细介绍如何在VB中调用存储过程,并获取存储过程的返回值。
第一步:准备工作在开始调用存储过程之前,我们首先需要在数据库中创建相应的存储过程。
存储过程可以使用SQL Server Management Studio等工具进行创建和修改。
以下是一个简单的存储过程示例:CREATE PROCEDURE GetProductCount@CategoryID INT,@ProductCount INT OUTPUTASBEGINSELECT @ProductCount = COUNT(*)FROM ProductsWHERE CategoryID = @CategoryIDEND上面的存储过程接受一个输入参数@CategoryID,并将符合条件的产品数量赋值给输出参数@ProductCount。
接下来,我们将在VB中调用这个存储过程,并获取返回的产品数量。
第二步:连接数据库首先,我们需要在VB中建立与数据库的连接。
可以使用ADODB库的Connection对象来实现这一功能。
以下是一个建立数据库连接的示例代码:Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=SQLOLEDB;DataSource=ServerName;Initial Catalog=DatabaseName;UserID=UserName;Password=Password"conn.Open在上面的代码中,需要将ServerName、DatabaseName、UserName 和Password替换为实际的数据库服务器名称、数据库名称、用户名和密码。
VB.net数据库编程(06):调用存储过程(带参和不参数情况)
数据库编程(06):调用存储过程(带参和不参数情况)先建立一个无参的存储过程,为下面第一个无参调用作准备:[sql]view plaincopyprint?e Sales2.go3.create procedure sp_getGrade4.as5.select * from grade where 数学>606.go注:go是作为前面批处理的结束情况。
因为前面执行是要花时间的,如果后面执行的要依赖前面结果,没有go的话,有可能前面没有执行完,当然后面依赖此结果的语句就会执行错误。
所以go 的作用很大。
再复习的过程:一、连接数据库二、发出指令。
command默认是commandType.text。
因为是存储过程,所以应指明为commandType.StoreProcedure三、填充结果集,显示。
所以代码如下:[vb]view plaincopyprint?1.Imports System.Data.SqlClient2.3.Public Class Form14.Dim cn As SqlConnection5.Dim cm As SqlCommand6.Dim da As SqlDataAdapter7.Dim ds As DataSet8.9.Private Sub Button1_Click(sender As Object, e As EventAr gs) Handles Button1.Click10.Try = New SqlConnection("Data Source=(local);Initial C atalog=Sales;Integrated Security=false;User ID=sa;Password=12 3456;").Open() '此句不省13.cm = New SqlCommand("sp_getGrade", cn)mandType = CommandType.StoredProcedure '指明为存储过程15.da = New SqlDataAdapter(cm)16.ds = New DataSet()17.da.Fill(ds, "grade")18.DataGridView1.DataSource = ds.Tables("grade").Close()20.Catch ex As Exception21.MessageBox.Show("执行失败")22.End Try23.End Sub24.End Class结果如下:====================================== ========================================= =================下面是一个带参数的存储过程的调用。
在VB中实现存储过程的调用
t i o n
2 .1 ADO简介
ADO控 件 ( 也 称 为 ADO D a t a 控件 ) 与V B 固有 的 Da t a 控
象访 问 S QL S E RV E R- i  ̄ 库H- E . - 体步骤 , 以及 如何在 V B程序开发 的过程 中调 用存储过程 。 [ 关键词] V B; A DO对 象; 存储过程 ; S QL s E RV E R数 据库
要信息 ; 最 后测试连 接 , 连接成 功后 , 按确 定按钮 , 返 回 到 属
I n f o = Fa l s e ; Us e r I D= s a ;p wd = s a ; I n i t i a l Ca t a l o g = No  ̄h wi n d : Da t a S o u r c e = T6 01 B0 5 ”
ADO对象 编程 即在 VB程序 开发 过程 中 , 调用 C o r m e c — t i o n 、 R e c o r d S e t 等对象进行编程 , 访 问数据库 。 C o n n e c t i o n ( 连接 ) : 表 示一个到远程数据库 的连接 , 该数
No  ̄ h wi n d 数 据 库 可将 上面 的代码 放在 窗体 的 L o a d 事 件 中, 运 行 此 窗 体 时 就 能 成 功 地 连 接 数 据 库 。接 着 , 就 可 使 用 数 据 库 感 知 控 件 ( MS F l e x Gr i d 、 T e x t B o x 、 Da t a G r i d 等) 将 其 内容 显 示 出 来 ; 或 者 在 程 序 中 进 一 步 地 调 用 存 储 过 程 来 执 行 需 要 的操 作 。
VB调用存储过程
存储过程spREA TE PROCEDURE sp@dept varchar(10) ,@sno varchar(10)ASSELECT s.sno, s.sname, ISNULL(A VG(grade),-1) average FROM s,scWHERE sdept=@dept and s.sno>=@sno and s.sno=sc.sno group by s.sno,s.snameRETURNGODim cnn1 As ADODB.Connection '连接Dim mycommand As mand '命令Dim parm_dept As ADODB.Parameter '参数1Dim parm_sno As ADODB.Parameter '参数2Dim rstByQuery As ADODB.Recordset '结果集Dim strCnn As String '连接字符串Private Sub Command1_Click()Dim i As IntegerDim j As IntegerSet parm_dept = New ADODB.ParameterSet mycommand = New mand' parm_ = "name1"parm_dept.Type = adChar '参数类型parm_dept.Size = 10 '参数长度parm_dept.Direction = adParamInput'参数方向,输入或输出parm_dept.V alue = "计科系" '参数的值mycommand.Parameters.Append parm_dept '加入参数Set parm_sno = New ADODB.Parameter'parm_ = "name2"parm_sno.Type = adIntegerparm_sno.Size = 10parm_sno.Direction = adParamInputparm_sno.V alue = "1501"mycommand.Parameters.Append parm_snomycommand.ActiveConnection = cnn1'指定该command 的当前活动连接mandText = "sp"'myprocedure 是你要调用的存储过程名称mandType = adCmdStoredProc'表明command 为存储过程Set rstByQuery = New ADODB.RecordsetSet rstByQuery = mycommand.Execute()MSFlexGrid1.Rows = 1'动态设置MSFlexGrid的行和列MSFlexGrid1.Cols = rstByQuery.Fields.Count MSFlexGrid1.Row = 0For i = 0 To rstByQuery.Fields.Count - 1MSFlexGrid1.Col = iMSFlexGrid1.Text = rstByQuery.Fields.Item(i).Name Next '设置第一行的标题,用域名填充i = 1Do While Not rstByQuery.EOFMSFlexGrid1.Rows = MSFlexGrid1.Rows + 1MSFlexGrid1.Row = i '确定行For j = 0 To rstByQuery.Fields.Count - 1MSFlexGrid1.Col = jMSFlexGrid1.Text = rstByQuery(j)'添充所有的列NextrstByQuery.MoveNexti = i + 1LoopEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()Set cnn1 = New ADODB.Connection'生成一个连接strCnn = "DRIVER=SQL Server; SERVER=192.168.1.4; UID=sa; PWD=; DA TABASE=sample"cnn1.Open strCnn '打开连接End SubPrivate Sub Form_Unload(Cancel As Integer) cnn1.Close '关闭连接Set cnn1 = Nothing '释放连接End Sub。
VB调用执行存储过程
关键字:数据库;SQL Server2000;存储过程;应用程序;VB存储过程存储过程是存储在服务器上的一组预编译的Transact-SQL语句,是一种封装重复任务操作的方法,支持用户提供的变量,具有强大的编程功能。
它类似于DOS系统中的BAT文件。
在BAT文件中,可以包含一组经常执行的命令,这组命令通过BAT文件的执行而被执行。
同样的道理,可以把要完成某项任务的许多Transact-SQL语句写在一起,组织成存储过程的形式,通过执行该存储过程就可以完成这项任务。
存储过程与BAT文件又有差别,即存储过程已经进行了预编译。
1、创建存储过程的方法在Transact-SQL语言中,创建存储过程可以使用CREATE PROCEDURE语句,其语法形式如下:CREATE PROC[EDURE] procedure_name[;number][{@parameter data_type}[VARYING][=default][OUTPUT]]],…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FOR REPLICATION]AS sql_statement[…n]在上面的CREATE PROCEDURE语句中,方括号"[ ]"中的内容是可选的,花括号"{}"中的内容是必须出现的,不能省略,[,…n]表示前面的参数样式,可以重复出现。
竖线"|"表示两边的选项可以任选一个。
下面分析该语句中各种选项的含义。
CREATE PROCEDURE是关键字,也可以写成CREATE PROC。
procedure_name是该存储过程的名称,名称可以是任何符合命名规则的标示符。
名称后的[;number]参数表示可以定义一系列的存储过程名称,这些存储过程的数量由number 指定。
参数名称可以使用@parameter data_type来指定。
VB中访问存储过程的几种办法
VB中访问存储过程的几种办法使用SQL存储过程有什么好处■SQL存储过程执行起来比SQL命令文本快得多。
当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。
■调用存储过程,可以认为是一个三层结构。
这使你的程序易于维护。
如果程序需要做某些改动,你只要改动存储过程即可■你可以在存储过程中利用Transact-SQL的强大功能。
一个SQL存储过程可以包含多个SQL 语句。
你可以使用变量和条件。
这意味着你可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。
■最后,这也许是最重要的,在存储过程中可以使用参数。
你可以传送和返回参数。
你还可以得到一个返回值(从SQL RETURN语句)。
环境:WinXP+VB6+sp6+SqlServer2000数据库:test表:UsersCREATE TABLE [dbo].[users] ([id] [int] IDENTITY (1, 1) NOT NULL ,[truename] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[regname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[pwd] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[sex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[email] [text] COLLATE Chinese_PRC_CI_AS NULL ,[jifen] [decimal](18, 2) NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]ALTER TABLE [dbo].[users] WITH NOCHECK ADDCONSTRAINT [PK_users] PRIMARY KEY CLUSTERED([id]) ON [PRIMARY]GO存储过程select_usersCREATE PROCEDURE select_users @regname char(20), @numrows int OUTPUT ASSelect * from usersSELECT @numrows = @@ROWCOUNTif @numrows = 0return 0else return 1GO存储过程insert_usersCREATE PROCEDURE insert_users @truename char(20), @regname char(20),@pwd char(20),@sex char(20),@email char(20),@jifen decimal(19,2)ASinsert into users(truename,regname,pwd,sex,email,jifen) values(@truename,@regname,@pwd,@sex,@email,@jifen)GO在VB环境中,添加DataGrid控件,4个按钮,6个文本框代码简单易懂。
调用存储过程的通用方法
调用存储过程的通用方法[摘要] 在中存储过程的调用模式几乎一样,不同之处是每个存储过程的参数不同,所以每调用一次存储过程重复代码很多,这在做项目时很麻烦。
笔者经过实践实现了在中调用存储过程的简单方法,该方法只需要提供要调用的存储过程名字和提供具体的参数值就可实现任何存储过程的调用。
[关键词] ;存储过程;系统表;信息结构视图笔者在用做项目时,很多时候要调用数据库中的存储过程,因为使用存储过程使得程序在调试、升级、维护方面都变得方便,时间久了,笔者发现存储过程的调用模式几乎一样,差别只是在于调用不同的存储过程的参数不同,所以每调用一次存储过程都要写一大堆几乎一样的代码,这在做项目时很麻烦,所以就想找一种简便的调用存储过程的方法。
笔者通过查找资料和编程实践实现了在中调用存储过程的通用方法。
该方法只需要提供要调用的存储过程名字和提供具体的参数值就可实现任何存储过程的调用。
在中存储过程分为有返回值的和无返回值的,不论哪种存储过程,它的调用方法都可以概括为下面的几步:(1) 声明一个Sql Connection实例。
(2) 声明一个Sql Command实例,并且设置其Connection属性为刚声明的Sql Connection实例,设置CommandName为存储过程名,CommandType为存储过程。
(3) 向声明的Sql Command实例的Parameters集合中添加所有的存储过程调用需要的参数。
(4) 声明Sql DataAdapter和DataSet,设置Sql DataAdapter的SelectCommand 属性为2中声明的Sql Command实例,再调用其Fill方法来把返回的行集填充到DataSet中。
(5) 关闭Sql Connection实例。
(6) 释放声明的各个实例。
调用不同的存储过程,只是第二步的CommandName和第三步中的参数不同。
我们要写一个通用的调用存储过程的方法,该方法只需要提供要调用的存储过程名字和提供具体的参数值就可实现任何存储过程的调用,那么就要自动实现如何根据存储过程名来得到它所有的参数信息,再根据这些参数信息自动创建各个参数。
VB调用ORACLE存储过程
在ADO中调用存储过程一直是一个困扰大家的问题。
其实,关于ADO调用存储过程的方法在很多书中都有讲到,标准的做法无非是按照以下步骤进行:1、生成并初始化一个_CommandPtr对象;2、生成调用存储过程需要的参数,这些参数都是_ParameterPtr对象;3、按照顺序将使用_CommandPtr的Append方法为存储过程提供参数(包括输入参数和输出参数);4、为_CommandPtr对象指定需要使用的ADO连接;5、使用_CommandPtr的Execute方法调用存储过程;6、从结果中获取返回参数的值(如果有的话)。
具体的过程在此我不详细描述,我想看看本文附带的代码就应该很明白了。
在这里我想就我使用ADO调用存储过程时的一些体会说明一下。
1、关于CreateParameter函数该函数的原型为:CreateParameter (Name, Type, Direction, Size, Value)其中Name是参数的名称,可以指定也可以不指定;Type是一个DataTypeEnum值,指定参数的类别,取值有adInteger(整型)、adChar(字符/字符串型)等;Direction是一个ParameterDirectionEnum值,其取值为adParamInput、adParamInputOutput、adParamOutput、adParamReturnValue、adParamUnknown;Size是一个Long类型的值,指示该参数值以字节计算的最大长度,例如对int型,该值可以取为sizeof(int),对Long型,该值可以取为sizeof(long),对字符串型,可以使用该字符串的长度;Value是一个variant类型的值,是该参数的取值。
在这里需要注意的是,Type参数、Direction参数以及Size参数一定要和存储过程定义时的参数相吻合,例如,如果有下面一个存储过程CREATE PROCEDURE SMS_Proc_Handle_All(@UserID Integer,@SourAddr Varchar(15),@DestAddr varchar(5000),@AvValue Single output,@ReturnInfo varchar(100) output)则Type参数的取值依次为adInteger、adChar、adChar、adSingle,adChar;Direction参数的取值依次为adParameterIn、adParameterIn、adParameterIn、adParameterOut、adParameterOut;对于输入参数,Size的值可以根据实际数值来定,对于输出参数,最好是根据定义确定(上例中ReturnInfo参数的Size值可以取为100)。
vb调用存储过程实例
vb调用存储过程实例嘿,朋友们!今天咱就来聊聊 VB 调用存储过程实例这档子事儿。
你看啊,这 VB 就像是一个聪明的小工匠,而存储过程呢,就像是一个装满了各种奇妙工具和技巧的百宝箱。
当 VB 这个小工匠想要完成一些复杂又厉害的任务时,它就得去打开那个存储过程的百宝箱,从中挑选出合适的工具来用。
比如说吧,我们要处理一堆数据,就好像要把一堆杂乱无章的积木搭建成一个漂亮的城堡。
VB 自己一个人可能会手忙脚乱,但有了存储过程,就像是有了一套详细的搭建指南。
它可以告诉 VB 该怎么一步一步地去做,先拿哪块积木,怎么摆放,怎样才能让城堡更稳固。
那怎么让 VB 顺利地调用存储过程呢?这可得有点小窍门啦!就好像你要打开一把复杂的锁,得知道怎么摆弄钥匙一样。
首先,你得告诉 VB 那个存储过程在哪里,就像是给它指明宝藏的位置。
然后呢,VB 得知道怎么和存储过程“对话”,怎么把自己的需求传达过去,又怎么接收存储过程给它的反馈。
这就好像你和朋友之间的交流,你得把你的想法清楚地说出来,朋友才能明白,然后朋友给你回应,你才能知道接下来该怎么做。
如果VB 没和存储过程“沟通”好,那可就乱套啦,就像你和朋友说话互相听不懂一样,那还怎么合作完成任务呢?在这个过程中,可不能粗心大意哦!一个小细节没注意到,可能就会导致整个程序出问题。
这就像盖房子,一块砖没放好,说不定整面墙都会倒掉呢!而且啊,不同的存储过程就像不同的百宝箱,里面的工具和方法都不一样,VB 可得好好研究,才能找到最适合的那个。
你说这 VB 调用存储过程实例是不是很有意思?它让我们能更高效地处理数据,更轻松地完成各种复杂的任务。
想想看,如果没有这种方式,我们得写多少繁琐的代码啊!现在有了它,就像是有了一个得力的助手,帮我们把那些麻烦事儿都搞定了。
所以啊,朋友们,好好去探索 VB 调用存储过程实例吧!让它为我们的程序带来更多的精彩和便利。
别害怕遇到问题,就像走路会摔跤一样,那都是成长的过程。
VB实现SQL Server2000存储过程调用
nm a e是该 存储 过程 的名 称 , 名称 可 以是任 何 符 合 命 名 规 则 的 标 示 符 。 名 称 后 的 [ ; nmbr参 数 表示 可 以 定 义 一 系 列 的存 储 过 程 名 u e] 称 , 些存储 过 程 的数 量 由 n m e 指 定 。 这 u br 参 数名称 可 以使用 @ prme rdt y e 指 aa t a t 来 e a p 定 。在 Tasc—S L语 言 中 , 户 定 义 的参数 名 rnat Q 用 称 前 面加 “ ” 号 , 些 数 据 类 型是 Tasc — @ 符 这 rnat S L语 言 允 许 的各 种 数 据 类 型 , 括 系统 提 供 的 Q 包 数 据类 型 和用户 定义 的数 据类 型 。 当参 数 类 型 为 cr r时 , 须 使 用 关 键 字 us o 必 V R I G和 O T U 。V R IG 表示 结 果 集 可 A YN U P T A YN 以是一 个输 出参 数 , 内容 是 动 态 的 。该 关 键 字 其 只能在 使 用 游 标 作 为 数 据 类 型 时 使 用 。关 键 字 O TU U P T表 示这 是一 个输 出参 数 , 以把 存储 过程 可 执行 的结 果 信息 返 回应用 程序 。 df l用 于指定 参 数 的默认 值 。 ea t u R C MPL E O IE选 项表 示重 新 编译 该 存 储 过 程 。 该 选项 只是 在 需 要 的 时候 才 使 用 , 如 经 常 需 要 例 改 变数 据库 模式 时 。 E C Y TO N R P I N选 项用 来加 密创 建 存 储 过程 的 文本 , 防止他 人查 看 。 选项 F R lUC rO O P A 1 N主要用 于复制 过程 中。 I 注意 , 该选项 不能 和选项 R C MPL E O IE同时使用 。 A 是一个关键字 , S 表示其后的内容是存储过 程 的语 句 。参 数 sl te n[ ] 示 在 一 个 q —s t t …n 表 a me 存储 过 程 中可 以包 含 多个 Tasc — Q rnat S L语句 。 12 存储 过 程 的优点 . 在频 繁访 问 数 据库 的 系 统 中 , 发 者 都乐 于 开 使用存储过程 , 这与存储过程 的下列优点是分不
vb调用存储过程的方法
vb调⽤存储过程的⽅法推荐假设有⼀个名为doc_ProcName存储过程,该存储过程有⼀个输⼊参数,⼀个输出参数。
1) 直接传递参数调⽤存储过程 直接传递参数⽅法主要通过以下⼏个步骤来实现: (1)通过ADODB的Connection对象打开与数据源的连接; (2)通过ActiveConnection指定Command对象当前所属的Connection对象; (3)通过CommandText属性设置Command对象的源,即要调⽤的存储过程; (4)通过CommandType属性确定Command对象的源类型,如果源类型为存储过程CommandType即为adCmdStoredProc; (5)通过Command对象的Parameters集合向所调⽤的存储过程传递参数,其中对象Parameters(0)为执⾏存储过程的返回值,返回值为0则执⾏存储过程成功; (6)通过Eexecute⽅法执⾏在 CommandText 属性中指定的存储过程。
以存储过程doc_ProcName为例,关键代码如下:Dim strS As String '定义⼀变量Dim adoconn As New ADODB.Connection 'Connection 对象代表了打开与数据源的连接。
Dim adocomm As New mand 'Command 对象定义了将对数据源执⾏的指定命令。
Dim ReturnValue As Integer '调⽤存储过程的返回值adoconn.ConnectionString = Adodc1.ConnectionString 'Adodc1为窗体中的ADO控件,并已成功连接数据库adoconn.OpenSet adocomm.ActiveConnection = adoconn '指⽰指定的 Command对象当前所属的 Connection对象。
VBA操作数据库存储过程的技巧与示例
VBA操作数据库存储过程的技巧与示例在使用VBA进行数据库操作时,使用存储过程可以提高效率和安全性。
存储过程是一组预先编写好的SQL语句,可以在数据库中存储和执行。
本文将介绍如何使用VBA操作数据库存储过程,并提供一些示例供参考。
1. 连接数据库在使用VBA操作数据库存储过程之前,首先需要连接到目标数据库。
可以使用ADODB对象来连接数据库,例如:```vbaDim conn As ObjectSet conn = CreateObject("ADODB.Connection")conn.ConnectionString = "Provider=SQLOLEDB;Data Source=服务器地址;Initial Catalog=数据库名称;User ID=用户名;Password=密码"conn.Open```在此示例中,需要替换"服务器地址"、"数据库名称"、"用户名"和"密码"为实际的连接信息。
2. 创建存储过程使用VBA创建存储过程可以通过在数据库中执行CREATE PROCEDURE语句来实现。
例如,创建一个简单的更新存储过程:```vbaDim strSQL As StringstrSQL = "CREATE PROCEDURE UpdateEmployee@EmployeeID INT, @FirstName VARCHAR(50), @LastName VARCHAR(50) AS" & _" UPDATE Employee SET FirstName = @FirstName, LastName = @LastName WHERE EmployeeID = @EmployeeID"conn.Execute strSQL```在此示例中,UpdateEmployee是存储过程的名称,@EmployeeID、@FirstName和@LastName是存储过程的参数,Employee是数据库中的表。
用vb调用存储过程方法
中如何调用存储过程2011-03-28 14:08:45| 分类:.net |举报|字号订阅下载LOFTER客户端此页涉及到的存储过程的创建,在存储过程的创建中有源码1、调用无参数存储过程dim conn As New SqlConnectiondim FBasicDataRecord as new BasicDataRecord()conn.ConnectionString = "Data Source=(local);Initial Catalog=LineManager;User ID=sa;Password=1"conn.Open()Dim cmd As SqlCommandcmd = New SqlCommand("GetNewestData", conn) -------要调用存储过程名称mandType = CommandType.StoredProcedure -----------关键,要想调用存储过程,需将commandtype类型设置为storedprocedureDim myReader As SqlDataReaderTrymyReader = cmd.ExecuteReader() -------------执行存储过程If myReader.Read() ThenFBasicDataRecord.mySetDateTime = myReader.GetDateTime(0)FBasicDataRecord.myHalfHourCost = myReader.GetDecimal(1)FBasicDataRecord.myUnitTime = myReader.GetInt32(2)FBasicDataRecord.myPrepareTime = myReader.GetInt32(3)FBasicDataRecord.myLeastCurrency = myReader.GetDecimal(4)FBasicDataRecord.myUserName = myReader.GetString(5)Return TrueElseReturn FalseEnd IfCatch ex As ExceptionReturn ex.MessageFinallyconn.close()End Try2、调用有参数存储过程Dim cmd As SqlCommanddim conn As New SqlConnectionconn.ConnectionString = "Data Source=(local);Initial Catalog=LineManager;User ID=sa;Password=1"conn.Open()cmd = New SqlCommand("ProcCharge", conn) --------存储过程名称mandType = CommandType.StoredProcedure ----------改变类型Dim a As New SqlParameter("@CardNo", SqlDbType.VarChar) ------------将存储过程中涉及的参数加入进来,并附值。
VB实现动态调用含DateTime类型存储过程
VB实现动态调用含DateTime类型存储过程前言VB对数据库的编程有多种方法,如:ODBC API编程、RDO(远程数据对象)、DAO(数据访问对象)、ADO(ActiveX 数据对象)方法编程实现方便、快捷,但灵活性稍差。
由于存储过程具有实现数据封装、隐藏以及代码的预编译、减少网络负载、维护方便等优点,所以被许多RDMBS和编程工具做支持。
VB 中的各类数据对象均都提供对存储过程的支持。
所以要灵活掌握调用存储过程这一技术是十分必要。
现在将VB中实现动态调用含DateTime类型的存储过程介绍给读者,让您很快掌握和运用这个方法,解决你身边的问题。
一、简述SQL Server 2000 日期时间类型(含dateTime类型字段)该类型是由有效的日期或时间组成;年-月-日小时:分:秒.千分之秒。
其格式:请见图示1在现阶段开发设计ERP系统项目中,尤其在创建数据库表结构时,均要考虑到DateTime字段的应用,它能记载信息发生时间段的信息,能充分反映该区间数据变化;除特殊情况下(如:网吧、游戏吧等需记录小时、分、秒)之外,一般要考虑到日期范围即:[年、月、日]。
二、我们以ADO为例来说明其实现步骤现在动态调用含有DateTime字段的存储过程,以帮助理解和掌握调用存储过方法:1>、使用Northwind的MS SQL中的例子库(此例子SQL Server2000自带)2>、在VB中生成一个新工程,工程添加一个窗体,三个Command(1,2,3)按钮,一个ListView控件,两个日期DTpicker控件,两个标签Label控件,一个文本TextBox控件。
请见图示23>、编程的设计思路基于SQL Server数据库表结构定义DateTime类型的特点,我们采取截取有效日期部分,实现对这个含有DateTime字段的存储过程动态调用,具体步骤如下:①.定义:Dim Dt10,DT20 as Variant②.采集动态日期赋值于以上两个变量中具备以上条件,可快捷、方便地获取动态日期区间内数据表的结果集。
VB中调用Oracle的存储过程
VB中调用Oracle的存储过程
常文兵
【期刊名称】《实验技术与管理》
【年(卷),期】2000(017)006
【摘要】本文论述了Oracle数据库存储过程的构造及其优点,并以实例说明VB中如何调用Oracle的存储过程.
【总页数】3页(P60-61,65)
【作者】常文兵
【作者单位】北京航空航天大学可靠性工程研究所,100083
【正文语种】中文
【中图分类】TP333
【相关文献】
1.使用VB调用oracle数据库存储过程的研究 [J], 刘丽;迟增晓
2.VB中调用ORACLE的研究及应用 [J], 俞晓;李贵洋;左友东
3.在VB中实现存储过程的调用 [J], 韦立梅;李郁林;张淑荣
4.在VB6.0中调用SQL Server的存储过程 [J], 赵航涛
5.用VB调用SQL数据库中存储过程的方法 [J], 罗港
因版权原因,仅展示原文概要,查看原文内容请购买。
在Visual Basic 5.0中使用存储过程
在Visual Basic 5.0中使用存储过程
彭江平;蒋炎焱
【期刊名称】《中国金融电脑》
【年(卷),期】1999(000)006
【摘要】本文首先讨论存储过程的运行机制及创建与调试方法,然后总结在VisualBasic中应用存储过程的各类方法并给出针对Oracle数据库服务器的一个具体编程实例,最后说明使用存储过程时的若干注意事项。
【总页数】4页(P32-34,41)
【作者】彭江平;蒋炎焱
【作者单位】湖南财经学院信息统计系
【正文语种】中文
【中图分类】TP312VB
【相关文献】
1.Visual basic在visual basic 6.0中设计数据报表 [J], 杜迎
2.学习VB程序设计的好教材——《Visual Basic程序设计教程(第四版)》和《Visual Basic程序设计简明教程》介绍 [J], 刘炳文
3.Visual Basic 6.0与Visual 的不兼容处理 [J], 万春;刘丽莉
4.如何用Visual Basic 6.0调用Oracle存储过程及传递参数 [J], 肖心阳
5.在Visual Basic中调用SQL Server 2000的存储过程 [J], 王金平;阙东兰;曹秋萍;王志霞
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储过程sp
REA TE PROCEDURE sp
@dept varchar(10) ,
@sno varchar(10)
AS
SELECT s.sno, s.sname, ISNULL(A VG(grade),-1) average FROM s,sc
WHERE sdept=@dept and s.sno>=@sno and s.sno=sc.sno group by s.sno,s.sname
RETURN
GO
Dim cnn1 As ADODB.Connection '连接
Dim mycommand As mand '命令
Dim parm_dept As ADODB.Parameter '参数1
Dim parm_sno As ADODB.Parameter '参数2
Dim rstByQuery As ADODB.Recordset '结果集
Dim strCnn As String '连接字符串
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Set parm_dept = New ADODB.Parameter
Set mycommand = New mand
' parm_ = "name1"
parm_dept.Type = adChar '参数类型
parm_dept.Size = 10 '参数长度
parm_dept.Direction = adParamInput
'参数方向,输入或输出
parm_dept.V alue = "计科系" '参数的值
mycommand.Parameters.Append parm_dept '加入参数Set parm_sno = New ADODB.Parameter
'parm_ = "name2"
parm_sno.Type = adInteger
parm_sno.Size = 10
parm_sno.Direction = adParamInput
parm_sno.V alue = "1501"
mycommand.Parameters.Append parm_sno
mycommand.ActiveConnection = cnn1
'指定该command 的当前活动连接
mandText = "sp"
'myprocedure 是你要调用的存储过程名称mandType = adCmdStoredProc
'表明command 为存储过程
Set rstByQuery = New ADODB.Recordset
Set rstByQuery = mycommand.Execute()
MSFlexGrid1.Rows = 1
'动态设置MSFlexGrid的行和列
MSFlexGrid1.Cols = rstByQuery.Fields.Count MSFlexGrid1.Row = 0
For i = 0 To rstByQuery.Fields.Count - 1
MSFlexGrid1.Col = i
MSFlexGrid1.Text = rstByQuery.Fields.Item(i).Name Next '设置第一行的标题,用域名填充
i = 1
Do While Not rstByQuery.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.Row = i '确定行
For j = 0 To rstByQuery.Fields.Count - 1
MSFlexGrid1.Col = j
MSFlexGrid1.Text = rstByQuery(j)
'添充所有的列
Next
rstByQuery.MoveNext
i = i + 1
Loop
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Set cnn1 = New ADODB.Connection
'生成一个连接
strCnn = "DRIVER=SQL Server; SERVER=192.168.1.4; UID=sa; PWD=; DA TABASE=sample"
cnn1.Open strCnn '打开连接
End Sub
Private Sub Form_Unload(Cancel As Integer) cnn1.Close '关闭连接
Set cnn1 = Nothing '释放连接
End Sub。