当前位置:首页 » 编程语言 » sqlserverreturn
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserverreturn

发布时间: 2022-08-10 05:51:50

A. 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

B. sql中return和output有什么区别,在C#的C/S结构中咋处理返回值

--===================================================================
--创建存储过程——用户登录(UserLogon)
--===================================================================
USE TestDemo
GO
IF OBJECT_ID ('dbo.proc_UserLogon', 'P') IS NOT NULL
DROP PROCEDURE dbo.proc_UserLogon;
GO
CREATE PROCEDURE proc_UserLogon
(
@UserID char(10), --用户号码
@UserPassword char(32), --用户密码
@UserRole nvarchar(10) OUTPUT, --用户权限
@StrError nvarchar(50) OUTPUT --错误处理
)
AS
--查询用户表并获取权限
SELECT @UserRole = UserRole FROM dbo.Users
WHERE UserID = @UserID AND UserPassword = @UserPassword
--存在该用户则立即返回
IF @@ROWCOUNT <> 0 BEGIN
SET @StrError = ''
RETURN
END
--用户不存在于用户表则继续查询会员信息表
SELECT * FROM dbo.MemberInfo
WHERE HY_ID = @UserID AND HY_Pwd = @UserPassword
--存在则立即返回,否则提示错误
IF @@ROWCOUNT <> 0 BEGIN
SET @StrError = ''
RETURN
END
ELSE BEGIN
SET @StrError = N'用户和密码不匹配,登录失败!'
END
GO

//添加的命名空间

using System.Data.SqlClient;

using System.Configuration;

/// <summary>

/// 【登录】按钮

/// </summary>

private void btnLogon_Click(object sender, EventArgs e)

{

if (this.txtUserID.Text.Trim() == "") MessageBox.Show("非法登录,请输入用户!");

else

{

SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);

//创建命令对象,设置查询语句为登录的存储过程名称

SqlCommand cmd = new SqlCommand("proc_UserLogon", conn);

//指定命令的类型为存储过程

cmd.CommandType = CommandType.StoredProcere;

//依次添加存储过程中的4个参数

cmd.Parameters.Add("@UserID", SqlDbType.Char, 10);

cmd.Parameters.Add("@UserPassword", SqlDbType.Char, 32);

cmd.Parameters.Add("@UserRole", SqlDbType.NVarChar, 8);

cmd.Parameters.Add("@StrError", SqlDbType.NVarChar, 50);

//依次为参数赋值

cmd.Parameters["@UserID"].Value = this.txtUserID.Text.Trim();

cmd.Parameters["@UserPassword"].Value = this.txtUserPwd.Text.Trim();

//参数@UserRole和@StrError为输出参数,必须明确指定

cmd.Parameters["@UserRole"].Direction = ParameterDirection.Output;

cmd.Parameters["@StrError"].Direction = ParameterDirection.Output;

try

{ conn.Open(); //打开数据库连接

cmd.ExecuteNonQuery(); //执行命令

}

catch (Exception ex) { MessageBox.Show(ex.Message); }

finally { conn.Close(); } //关闭数据库连接

//读取返回的错误

string StrError = cmd.Parameters["@StrError"].Value.ToString();

if (StrError == "") //判断存储过程执行的结果

{

string Role = cmd.Parameters["@UserRole"].Value.ToString();

qgMain qg = new qgMain();

qg.Uid = this.txtUserID.Text.Trim(); //传递用户号

qg.Pwd = this.txtUserPwd.Text.Trim(); //传递用户密码

qg.Role = Role; //传递权限

qg.Show();

this.Hide(); //隐藏登录窗口

}

else MessageBox.Show(StrError);

}

}

/// <summary>

/// 【退出】按钮

/// </summary>

private void btnExist_Click(object sender, EventArgs e)

{ Application.Exit(); } //退出当前系统

C. 怎么从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

D. sqlserver存储过程结果是'001'(varchar),return回来的值却是'1'

createprocsp_xxx_get_id(@o_idvarchar(15)output)
as
begin
set@o_id='001';
end
GO
declare@resultvarchar(15);
execsp_xxx_get_id@resultoutput
select@resultasid

上面是一个例子,可以参考。

存储过程可以返回整数。你这个例子是将001转化为整数1了,如果id是其它字符如'abc',则你那种调用方式会产生错误。

E. sqlserver自定义函数如何返回结果集

定义一个返回值为表结构,然后返回表,这样就可以了。

createfunctionfn_test(@avarchar(10))
returnstable(keyIdvarchar(20))
as
begin
declare@table(keyIdvarchar(20))
return@table
end

go

F. sqlserver 存储过程执行完成后 returnvalue的含义

不回答我难受,把我知道的都写上:
在DELETE时删除了0行,他返回了一个0.删除了多少行他返回多少.
UPDATE时,更新了多少行,他就返回多少.
SELECT时,returnvalue这时应该是-1的.
其它的我也不知道了

G. Sqlserver存储过程返回表,如何实现

代码参考如下:
create proc p_abc @i int
as
--中间有个非常复杂的计算
select * from #tmp where fid=@i
go

create proc p_test @i int
as
set nocount on

create table #temp(.....)
insert into #temp
exec p_abc @i --执行这个语句后返回一个table,把这个返回结果插入到临时表

go

H. sqlServer中返回受上两句语句影响的行数,如果前两条sql语句都为0则return

你说的应该是这个
@@ROWCOUNT
返回受上一语句影响的行数。

语法
@@ROWCOUNT

返回类型
integer

注释
任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。

I. 如果sqlserver的存储过程中有return返回值,那么相同的转换成oracle的存储过程怎么写,

使用 to_char(num,'fm999999990.999999999')试试看吧
要不定义一下返回值为number看看行不行