當前位置:首頁 » 編程語言 » 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看看行不行