调用存储过程输出参数
1. 如何用VB6调用带参数带输出的存储过程
追加参数法调用存储过程
追加参数通过CreateParameter方法,
用来指定属性创建新的Parameter对象。具体语法如下:
Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
·Name 可选,字符串,代表 Parameter 对象名称。
·Type 可选,长整型值,指定 Parameter 对象数据类型。
·Direction 可选,长整型值,指定 Parameter 对象类型。
·Size 可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
·Value 可选,变体型,指定 Parameter 对象值。
这种方法与上面一种方法的分别主要在于,
追加参数的方法在向存储过程传递参数时,
这种方法首先通过CreateParameter方法为存储过程创建参数,
然后通过Append方法将创建的参数追加到Parameter
s集合中去。
仍然以存储过程doc_ProcName的调用为例,
关键代码如下:
Dim mRst As ADODB.Recordset 'Recordset 对象表示的是来自基本表或命令执行结果的记录全集。
Dim prm As ADODB.Parameter 'Parameter 对象代表参数或与基于参数化查询或存储过程的Command 对象相关联的参数。
adoconn.ConnectionString = Adodc1.ConnectionString
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = doc_ProcName
adocomm.CommandType = adCmdStoredProc
Set prm = adocomm.CreateParameter(
parameter1, adTinyInt, adParamInput, , 1)
adocomm.Parameters.Append prm
Set prm = adocomm.CreateParameter(
parameter2, adInteger, adParamOutput)
adocomm.Parameters.Append prm
2. 存储过程参数输入和输出参数有什么作用
无论是输入的参数还是输出的参数,在此过程中都视为一个参数,所以一般情况下对应你定义的参数类型和个数带入,便可调用。
存储过程后面的是参数列表,其实存储过程就是个方法,通过传递参数来指导方法完成。输出参数相当于返回值,会带output关键字。
其它参数要提前赋值,而output不需要提前赋值,只需要提供一个变量,在存储过程执行完的时候,output类型的变量值就会修改,获得返回值,只能通过这个方法获得返回值,而不能像函数一样直接返回结果。因为存储过程是没有返回值的。
(2)调用存储过程输出参数扩展阅读
1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般sql语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2、当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3、存储过程可以重复使用,可减少数据库开发人员的工作量。
4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权。
3. 如何用VB6调用带参数带输出的存储过程
追加参数法调用存储过程
追加参数通过CreateParameter方法,
用来指定属性创建新的Parameter对象。具体语法如下:
Set
parameter
=
command.CreateParameter
(Name,
Type,
Direction,
Size,
Value)
·Name
可选,字符串,代表
Parameter
对象名称。
·Type
可选,长整型值,指定
Parameter
对象数据类型。
·Direction
可选,长整型值,指定
Parameter
对象类型。
·Size
可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。
·Value
可选,变体型,指定
Parameter
对象值。
这种方法与上面一种方法的分别主要在于,
追加参数的方法在向存储过程传递参数时,
这种方法首先通过CreateParameter方法为存储过程创建参数,
然后通过Append方法将创建的参数追加到Parameter
s集合中去。
仍然以存储过程doc_ProcName的调用为例,
关键代码如下:
Dim
mRst
As
ADODB.Recordset
'Recordset
对象表示的是来自基本表或命令执行结果的记录全集。
Dim
prm
As
ADODB.Parameter
'Parameter
对象代表参数或与基于参数化查询或存储过程的Command
对象相关联的参数。
adoconn.ConnectionString
=
Adodc1.ConnectionString
adoconn.Open
Set
adocomm.ActiveConnection
=
adoconn
adocomm.CommandText
=
doc_ProcName
adocomm.CommandType
=
adCmdStoredProc
Set
prm
=
adocomm.CreateParameter(
parameter1,
adTinyInt,
adParamInput,
,
1)
adocomm.Parameters.Append
prm
Set
prm
=
adocomm.CreateParameter(
parameter2,
adInteger,
adParamOutput)
adocomm.Parameters.Append
prm
4. C#中怎样调用mySql的存储过程并取得输出参数
string MyConString = "..."
OdbcConnection conn = new OdbcConnection(MyConString);
conn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = "p_test";
OdbcParameter p1 = new OdbcParameter("t_count", OdbcType.Int);
p1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(p1);
int i = cmd.ExecuteNonQuery();
TextBox1.Text = p1.Value.ToString();
conn.Close();
5. java中,怎样调用带输出参数的存储过程
1、创建带输出参数的存储过程 如: 在查询分析器中执行declare @mg nvarchar(100)
exec proc_CSCO_SalesFctByStore 100,200,'name',@mg output
print @mg 在Java中调用import java.sql.*;
public class Test{
public static void main(String args[]) throws Exception {//加载驱动DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //获得连接
Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa",""); //创建存储过程的对象
CallableStatement c = conn.prepareCall("{call proc_CSCO_SalesFctByStore(?,?,?,?)}"); //给存储过程的第一个参数设置值
c.setInt(1, 100); //给存储过程的第一个参数设置值
c.setInt(2, 10000); //给存储过程的第一个参数设置值
c.setString(3, user); //注册存储过程的第四个参数
c.registerOutParameter(4, java.sql.Types.VARCHAR); //执行存储过程
c.execute(); //得到存储过程的输出参数值
6. plsql中怎么调用带输出参数的存储过程
1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。
7. c程序该怎么样调用oracle存储过程并获取存储过程中的输出参数的值
我以前这样用pro*c 这样玩的,仅供参考
EXEC SQL EXECUTE
DECLARE
lsid varchar2(60);
lss_this_error_code number;
BEGIN
proctest(:ls_name,lsid); --ls_name 输入参数 lss_id 输出
:chId := lsid;-- lsid 输出返回给C变量chId
END;
END-EXEC;
8. 关于调用带输出参数的oracle存储过程
可以通过以下方式来进行带参数存储过程执行。
SQL>createorreplaceproceresp_pro10
2(spnoinnumber,spnameoutvarchar2)is
3begin
4select'ename'intospnamefromal;
5end;
6/
过程已创建。
SQL>setserveroutputon
SQL>DECLARE
2spnonumber;
3spnamevarchar2(10);
4BEGIN
5sp_pro10(spno,spname);
6
7dbms_output.put_line(spname);
8END;
9/
ename
PL/SQL过程已成功完成。