存储过程返回参数
A. oracle 存储过程中怎么返回参数
存储过程定义参数时,变量名的后面加上关键字OUT,在存储过程执行中对这个参数进行赋值。等存储过程执行结束之后,可以在sqlplus中获得这个参数返回的值。
B. 存储过程返回参数一般有什么用
执行查询命令和批量更新命令以及统计结果,可以使用返回参数查看操作了多少条记录或具体统计值有多少。
C. SQL 取存储过程的返回值
存储过程应该有返回值的,
问题应该出现在你vb6的调用语句中(第二个参数是输出类型的参数,
是否有正确设置).
你可以在查询分析器中执行此存储过程,
看看返回的结果.
还有,
此存储过程中的select语句最好加上top
1限制,
因为你只要判断是否能选到结果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a
D. 怎么从sqlserver的存储过程获得返回的数据
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。
而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。
示例:
create procere dbo.pr_add @a int, @b int, @c int outputas set @c = @a + @bgo
调用:
declare @v intexecute dbo.pr_add 1, 2, @v outputselect @v
E. 存储过程返回值
create procere InsertNull
@TableName varchar(50),
@Result int output
AS
declare @dtName varchar(1000)
set @dtName='insert into ' + @TableName +' default values'
exec(@dtName)
set @Result=SCOPE_IDENTITY()
select @Result As Result --注意,这里显示出来
go
然后exec insertnull ...参数
就相当于select Result
如果在程序里,执行这句之后,就能访问Result字段了
F. delphi客户端调用存储过程返回参数,请问怎么解决
有位同伙告诉我一种办法,但答复我不太明白,我的目标是如许的,三层构造下客户端给存储过程几个参数,返回几个参数答复如下:我有一个经验,后台数据库是SqlServer2000:
1.存储过程不返回记录集,只返回参数。
TClientDataSet.CommandText:=
'
Declare
@OutputData
int
Excute
StoredProc1
@OutputData
Output
如许就可以返回输出的参数了。
以上调用输出可能有错,但语句是对的,你式一下。
2.存储过程要返回记录集,也要返回参数。
你只好再中心层写办法调用了。
返回参数值:=
clientdataset.fieldbyname('outputdata').asstring;
在delphi中该怎么定义参数,怎么处理,还请明示1。
这个commandtext到底该怎么写?Excute
StoredProc1
@OutputData
Output
中的outputdate在存储过程中是否应当定义?2。Select
@OutputData
起什么感化?3。多参数怎么解决,参数名称是否和存储过程中应当一样?4。open打开到底返回的是记载照样参数?分别怎么处理?
Select
@OutputData
'
你要用open打开,返回是一笔记录。如不雅存储过程名称位disp1
传入参数在存储过程平分别为@time1,@time2
传出参数位@get1,@get2均为float
G. c#如何取得存储过程的返回值
比如你的存储过程返回参数变量名字为@res,而且sqlcommand cmd已经声明定义;
那么在执行sql语句之前
应该:
cmd.Parameters["@res"].Direction = ParameterDirection.InputOutput;
然后执行sql语句;
执行完毕再:
int res=(int)cmd.Parameters["@res"].Value;
结束,res就是存储过程的返回值了
H. 如何获取存储过程返回值
楼主会在c#中使用存储过程吗?
如果会的话,sql执行函数赋值给一个变量就可以了
sqlconnection
cnn
=
new
sqlconnection();
cnn.connectionstring
=
"data
source
=
数据源;uid=sa;pwd
=
;database=数据库名";
cnn.open();//数据库连接
//设置存储过程参数
sqlparameter
prm;
sqlcommand
cmd
=
new
sqlcommand();
cmd.connection
=
cnn;
cmd.commandtype
=
commandtype.storedprocere;
cmd.commandtext
=
"存储过程名";
//项目类型
prm
=
new
sqlparameter();
prm.parametername
=
"参数名1";
prm.sqldbtype
=
sqldbtype.varchar;
prm.size
=
50;
prm.value
=
combobox1.text;
prm.direction
=
parameterdirection.input;
cmd.parameters.add(prm);
...
//可以继续设置参数,参数个数由存储过程的具体内容决定
cmd.executenonquery();//执行存储过程
实际上如果要获取存储过程的返回值,只要将上面一句代码修改成:
int
retn
=
cmd.executenonquery();
就可以了
I. 如何调用存储过程的返回值
存储过程
中的第一个参数
@title
将接收由调用程序指定的输入值,而第二个参数
@ytd_sales
将向调用程序返回该值。SELECT
语句使用
@title
参数以获得正确的
ytd_sales
值,并将该值赋予
@ytd_sales
输出参数。
CREATE
PROCEDURE
get_sales_for
J. 如何 mysql 存储过程返回值
mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。
mysql中存储过程的例子:
CREATE PROCEDURE addvoucher (
IN userid INT,
IN voucherid INT,
OUT result INT
)
BEGIN
SELECT
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
FROM
t_voucher
WHERE
id = voucherid;
SET autocommit = 0;
IF EXISTS (
SELECT
*
FROM
t_user_voucher tuv,
t_voucher tv
WHERE
tv.id = tuv.voucherid
AND tv.batch =@batch_a
) THEN
SET result = 1;-- 已存在
SELECT
result;
ELSE
IF @c_count_a > 0 THEN
IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 THEN
IF @isdead_a = 1 THEN
INSERT INTO t_user_voucher (userid, voucherid, isdead)
VALUES
(userid, voucherid, 1);
UPDATE t_voucher SET c_count = c_count-1 where id = voucherid;
SET result = 0;-- 成功
END;