当前位置:首页 » 存储配置 » c获取存储过程返回值

c获取存储过程返回值

发布时间: 2023-05-22 02:04:18

⑴ 有返回值的存储过程怎么在命令行执行

sql">--1.OUPUT参数返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
END
END

存储过程中获得方法:

DECLARE@o_buyeridint
DECLARE@o_idbigint
EXEC[nb_order_insert]@o_buyerid,@o_idoutput


--2.RETURN过程返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
IF(EXISTS(SELECT*FROM[Shop]WHERE[s_id]=@o_shopid))
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
RETURN1—插入成功返回1
END
ELSE
RETURN0—插入失败返回0
END

存储过程中获得方法:

DECLARE@o_buyeridint
DECLARE@o_idbigint
DECLARE@resultbit
EXEC@result=[nb_order_insert]@o_buyerid,o_idbigint


以下是程序获得存储过程值


1、获取Output输出参数值

//存储过程
//CreatePROCEDUREMYSQL
//@aint,
//@bint,
//@cintoutput
//AS
//Set@c=@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@c",SqlDbType.Int));
MyCommand.Parameters["@c"].Direction=ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

2、获取Return返回值

//存储过程
//CreatePROCEDUREMYSQL
//@aint,
//@bint
//AS
//return@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=10;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@return",SqlDbType.Int));
MyCommand.Parameters["@return"].Direction=ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());

⑵ 如何 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;

⑶ SQL 取存储过程的返回值

存储过程应该有返回值的,
问题应该出现在你vb6的调用语句中(第二个参数是输出类型的参数,
是否有正确设置).
你可以在查询分析器中执行此存储过程,
看看返回的结果.
还有,
此存储过程中的select语句最好加上top
1限制,
因为你只要判断是否能选到结果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a

⑷ SQL SERVER怎么获取存储过程返回的数据集

数据集可以用print的方式返回。

1、创建测试表、插入数据:

createtabletest
(idintnotnull,
namevarchar(10))


insertintotestvalues(1,'张三')
insertintotestvalues(2,'李四')

表里数据如图:

⑸ 如何用return在存储过程中返回字符串

C语言中实现函数返回字符串,首先要确定函数返回的字符串地址的来源,一般分为四种方式:
函数形参带进来的地址
静态局部变量地址
局部变量地址,必须在函数中用malloc()函数进模冲行地址分配
采用全局变量地址
参考代码:
void func1( char *s ) //通过形参返回字符串
{
strcpy( s, "hello");
}
char * func1_1( char *s ) //另一种写法
{
strcpy( s, "hello");
return s ; //返回形参地址,方便程序调用
}
char * func2( void )
{
static char s[100]; //不能是非静态变量,否则,子函数结束,局部变量被释放,调用者得到一个无效的地址值。
strcpy( s, "hello");
return s ; //返回静态局部变量地址,由调用者采用相应的指针变量接旦好歼袜正收返回值,得到字符串数据。
}
char * func3( void )
{
char *s ;
s=(char *)malloc( 100 );
strcpy( s, "hello");
return s ; //返回s值,该地址需要调用者去free()释放。
}
//定义全局变量
char globle_buf[100];
void func4( void )
{
strcpy( globle_buf, "hello");
}
char * func4_1( char *s ) //另一种写法
{
strcpy( globle_buf, "hello");
return globle_buf ; //返回全局变量地址,方便程序调用
}

⑹ C#获取 sqlserver 存储过程返回多表数据

返回的时候用dataset就可以,比如你存储过程这样写
select * from A
select * from B
select * from C
select * from D
select * from D
在执行完存储过程后返回一个dataset
dataset ds = 执行存储过程
ds.tables[0]就是表A
ds.tables[1]就是表B
ds.tables[2]就是表C
剩下的依次类推.

⑺ C语言 怎么 调存储过程

C语言里没有存储过程,只有函数,函数调用有两种方式
传值调用(call by value)和传址调用(call by reference)
例如
f1(x)
{
int a;
a=3*1-1;
f2(x,a);
return a+x;
}

f2(int r,int s)
{
int y;
y=2*r+1;
s=x*r;
r=s-y;
return;
}

f1中调用了f2函数,若第一个参数采用传值方式(无返回值,即f1中x=3 不变,只是把值传给f2使用而已)第二个参数采用传址方式(返回的是s的地址引用,即f1中a的值与f2中s的值相等)若x=3,则a+x=24

⑻ vb6.0获取sqlserver存储过程的返回值

Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cnn_c As New ADODB.Command
Dim cnn_p As ADODB.Parameter
Cnn.ConnectionString = ConnStr'连接字符串
With Cnn
'.Provider = "MSDASQL"
.CursorLocation = adUseClient
.Open
End With
Set Cnn_c.ActiveConnection = Cnn
With Cnn_c
.CommandType = adCmdStoredProc
.CommandText = "存储过程名"
End With
Set cnn_p = Cnn_c.CreateParameter("ReTurn", adInteger, adParamReturnValue)
Cnn_c.Parameters.Append cnn_p
‘这里添加其他参数
Set Rs = Cnn_c.Execute'执行
'Cnn_c.Parameters("ReTurn")这就是返回值
Rs.close

Cnn.Close
Set cnn_p = Nothing
Set Cnn_c = Nothing
Set Rs = Nothing
Set Cnn = Nothing

⑼ 怎么从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

热点内容
苹果系统搭建服务器的软件 发布:2025-04-22 16:36:29 浏览:13
房车配置怎么选择 发布:2025-04-22 16:22:14 浏览:492
编程猫gb 发布:2025-04-22 16:22:13 浏览:632
密码加密php 发布:2025-04-22 16:07:09 浏览:582
imac存储空间为什么这么小 发布:2025-04-22 15:45:30 浏览:223
上传时速是0 发布:2025-04-22 15:37:49 浏览:568
0基础的编程 发布:2025-04-22 15:37:09 浏览:205
vnc怎么查服务器ip 发布:2025-04-22 15:29:20 浏览:158
百度云ftp服务器 发布:2025-04-22 15:17:50 浏览:656
平板哪个配置最高 发布:2025-04-22 15:16:20 浏览:831