當前位置:首頁 » 編程語言 » 接收sql概要文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

接收sql概要文件

發布時間: 2022-08-28 00:34:54

1. sql代碼里如何接收exce存儲過程返回的多個數據集

在sql語句實現不了.
建議修改存儲過程,或者放在客戶端用程序實現.

2. 如何接收sql語句執行.的返回值

獲取存儲過程返回值及代碼中獲取返回值
1.OUPUT參數返回值
例: 向Order表插入一條記錄,返回其標識

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END
存儲過程中獲得方法:

DECLARE @o_buyerid int
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid ,o_id bigint
2.RETURN過程返回值

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_shopid))
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
RETURN 1 — 插入成功返回1
END
ELSE
RETURN 0 — 插入失敗返回0
END
存儲過程中的獲取方法
DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id bigint
3.SELECT 數據集返回值

CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO
存儲過程中的獲取方法
(1)、使用臨時表的方法

CREATE TABLE [dbo].[Temp](
[o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[o_buyerid] [int] NOT NULL
)
INSERT [Temp] EXEC [nb_order_select] @o_id
– 這時 Temp 就是EXEC執行SELECT 後的結果集
SELECT * FROM [Temp]
DROP [Temp] — 刪除臨時表
(2)、速度不怎麼樣.(不推薦)

SELECT * from openrowset(』provider_name','Trusted_Connection=yes』,'exec nb_order_select』)

1.獲取Return返回值

程序代碼
//存儲過程
//Create PROCEDURE MYSQL
// @a int,
// @b int
//AS
// return @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcere;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());
2.獲取Output輸出參數值

程序代碼
//存儲過程
//Create PROCEDURE MYSQL
// @a int,
// @b int,
// @c int output
//AS
// Set @c = @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcere;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

C#接收存儲過程返回值:
public static int User_Add(User us)
{
int iRet;
SqlConnection conn = new SqlConnection(Conn_Str);
SqlCommand cmd = new SqlCommand("User_Add", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.AddWithValue("@UName", us.UName);
cmd.Parameters.AddWithValue("@UPass", us.UPass);
cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);
cmd.Parameters.AddWithValue("@PassKey", us.PassKey);
cmd.Parameters.AddWithValue("@Email", us.Email);
cmd.Parameters.AddWithValue("@RName", us.RName);
cmd.Parameters.AddWithValue("@Area", us.Area);
cmd.Parameters.AddWithValue("@Address", us.Address);
cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);
cmd.Parameters.AddWithValue("@Phone", us.Phone);
cmd.Parameters.AddWithValue("@QQ", us.QQ);
cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return iRet;
}
C#接收存儲過程輸出參數:
public static decimal Cart_UserAmount(int UID)
{
decimal iRet;
SqlConnection conn = new SqlConnection(Conn_Str);
SqlCommand cmd = new SqlCommand("Cart_UserAmount", conn);
cmd.CommandType = CommandType.StoredProcere;
cmd.Parameters.AddWithValue("@UID", UID);
cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (decimal)cmd.Parameters["@Amount"].Value;
}
catch (SqlException ex)
{
throw ex;
}
finally
{
conn.Close();
}
return iRet;
}

//////////////////////////////////////////////////////////////
SQL 2000用戶自定義函數 一。SQL Server 的三種自定義函數
「自定義函數」是我們平常的說法,而「用戶定義的函數」是 SQL Server 中書面的說法。
SQL Server 2000 允許用戶創建自定義函數,自定義函數可以有返回值。
自定義函數分為:標量值函數或表值函數
•如果 RETURNS 子句指定一種標量數據類型,則函數為標量值函數。可以使用多條 Transact-SQL 語句定義標量值函數。
•如果 RETURNS 子句指定 TABLE,則函數為表值函數。
表值函數又可分為:內嵌表值函數(行內函數)或多語句函數
•如果 RETURNS 子句指定的 TABLE 不附帶列的列表,則該函數為內嵌表值函數。
•如果 RETURNS 子句指定的 TABLE 類型帶有列及其數據類型,則該函數是多語句表值函數。
標量值函數示例
CREATE FUNCTION dbo.Foo()
RETURNS int
AS
BEGIN
declare @n int
select @n=3
return @n
END
create function GetSex(@sex int)
returns varchar(2)-- 用nvarchar(1)
as -- nvarchar:不管是一個字元還是一個漢字,都存為2個位元組
begin -- varchar:漢字是2個位元組,其他字元存為1個位元組
declare @ssex varchar(2)-- 用nvarchar(1)
if(@sex=1)
set @ssex='男'
else
set @ssex='女'
return (@ssex)
end
調用:
select id,username,dbo.GetSex(Sex) as sex ,loginnum from t_user
內嵌表值函數示例
CREATE FUNCTION dbo.Foo()
RETURNS TABLE
AS
return select id, title from msgs
內嵌表值函數只有一個 select 語句。
多語句表值函數示例(部分)
CREATE FUNCTION FindUsers (@userid int )
RETURNS @FindUser TABLE (id int primary key, UserName varchar(30), RegDateTime DateTime,LoginNum int)
as
begin
insert into @FindUser Select ID, UserName,RegDateTime,LoginNum From T_User Where ID=@userid
return
end
調用:
SELECT * FROM FindUsers(6)
注意其 RETURNS 部分。
多語句函數的主體中允許使用以下語句。未在下面的列表中列出的語句不能用在函數主體中。
•賦值語句。
•控制流語句。
•DECLARE 語句,該語句定義函數局部的數據變數和游標。
•SELECT 語句,該語句包含帶有表達式的選擇列表,其中的表達式將值賦予函數的局部變數。
•游標操作,該操作引用在函數中聲明、打開、關閉和釋放的局部游標。只允許使用以 INTO 子句向局部變數賦值的 FETCH 語句;不允許使用將數據返回到客戶端的 FETCH 語句。
•INSERT、UPDATE 和 DELETE 語句,這些語句修改函數的局部 table 變數。
•EXECUTE 語句調用擴展存儲過程。
二.如何調用自定義函數

調用自定義函數(用戶定義的函數)和調用內置函數方式基本相同,
•當調用標量值函數時,必須加上「所有者」,通常是 dbo(但不是絕對,可以在企業管理器中的「用戶定義的函數」中查看所有者)。
•當調用表值函數時,可以只使用函數名稱。
示例
SELECT *
select dbo.Sta(cnt) from tbl
示例
SELECT *
FROM fn_MyTableFunc( 123.09, N'O''Neill' )
三。存儲過程和自定義函數的區別
存儲過程(用戶定義的存儲過程)和自定義函數(用戶定義的函數)的區別,在網上已經有討論過,但有些顯得過於零散,有些又篇幅過長不能保證每個人都細心閱讀。這里作一個歸納,當然只是應用層面的,可能不全面。
•存儲過程,功能強大,可以執行包括修改表等一系列資料庫操作,也可以創建為 SQL Server 啟動時自動運行的存儲過程。
•自定義函數,用戶定義函數不能用於執行一組修改全局資料庫狀態的操作。

•存儲過程,可以使用非確定函數。
•自定義函數,不允許在用戶定義函數主體中內置非確定函數。

•存儲過程,可返回記錄集。
•自定義函數,可以返回表變數。

•存儲過程,其返回值不能被直接引用。
•自定義函數,其返回值可以被直接引用。

•存儲過程,用 EXECUTE 語句執行。
•自定義函數,在查詢語句中調用。

3. VB 接收 SQL 存儲過程 輸出 問題

添加返回參數
cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;

執行存儲過程
cmd.ExecuteNonQuery()

定義返回值類型一定要和存儲過程返回類型一樣
iRet = cmd.Parameters["@RETURN_VALUE"].Value

4. bat文件如何接收pgsql執行存儲過程返回來的值

PostgreSQL 存儲過程定義格式如下:
■結構 PL/pgSQL是一種塊結構的語言,比較方便的是用pgAdmin III新建Function,填入一些參數就可以了。
基本上是這樣的:
CREATE OR REPLACE FUNCTION 函數名(參數1,[整型 int4, 整型數組 _int4, ...]) RETURNS 返回值類型 AS $BODY$ DECLARE 變數聲明 BEGIN 函數體 END; $BODY$ LANGUAGE 『plpgsql』 VOLATILE;
■變數類型 除了postgresql內置的變數類型外,常用的還有 RECORD ,表示一條記錄。
■賦值 賦值和Pascal有點像:「變數 := 表達式;」 有些奇怪的是連接字元串的是「||」,比如 sql := 『SELECT * FROM』 || table || 『WHERE …』;
■判斷 判斷又和VB有些像: IF 條件 THEN … ELSEIF 條件 THEN … ELSE … END IF;
■循環 循環有好幾種寫法: WHILE expression LOOP statements END LOOP; 還有常用的一種是:(從1循環到9可以寫成FOR i IN 1..9 LOOP) FOR name IN [ REVERSE ] expression .. expression LOOP statements END LOOP;
■其他 還有幾個常用的函數: SELECT INTO record …; 表示將select的結果賦給record變數(RECORD類型) PERFORM query; 表示執行query並丟棄結果 EXECUTE sql; 表示執行sql語句,這條可以動態執行sql語句(特別是由參數傳入構造sql語句的時候特別有用)
--簡單的例子:
例1:無返回值
CREATE OR REPLACE FUNCTION 函數名稱( 參數1,參數2,...)
AS
$BODY$
DECLARE --定義
BEGIN
INSERT INTO "表名" VALUES(參數1,參數2,...);
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE; -- 最後別忘了這個。
例2:有返回值
CREATE OR REPLACE FUNCTION 函數名稱(deptcode VARCHAR(20) ,deptname VARCHAR(60) ,pycode VARCHAR(60),isenabled CHAR(1))
RETURNS BOOLEAN --返回值,布爾類型
AS
$body$
DECLARE
deptcode VARCHAR(20);
deptname VARCHAR(60);
pycode VARCHAR(60);
isenabled CHAR(1);
BEGIN
UPDATE "deptDict" SET deptcode=deptcode,deptname=deptname,pycode=pycode,isenabled=isenabled,updatedhisdatetime=CURRENT_TIMESTAMP
WHERE deptcode=deptcode;
RETURN TRUE;
END
$body$
LANGUAGE 'plpgsql' VOLATILE;
最後再加上如何執行這個存儲過程(函數)
-- 執行存儲過程方法1
SELECT * FROM 函數名稱(參數1,參數2,...)
-- 執行存儲過程方法2
SELECT 函數名稱('0參數1,參數2,...)

5. c#中如何接收從sql資料庫中查詢出的項

string str=(string)cmd.ExecuteScalar(); 如果只有一個string類數據可以這樣,效率很高 如果有很多數據,就要這樣: DataTable dt = new DataTable(); SqlDataAdapter adp = new SqlDataAdapter(cmd); adp.Fill(dt); 把數據都取到數據表中

6. 表單提交的sql語句,怎麼接收(jsp)

表單提交,為什麼又用參數aaa呢?
sql.jsp?aaa=update cert_tj set updateman='gx06' where f9901='220000000000000'
接受頁面直接讀取提交頁面的文本框內容就可以了啊
如果用參數,就要先讀取參數,如樓上

7. 51單片機如何讀取sql資料庫

你需要做個個串口通訊,將單片機的數據上載到電腦端,電腦端要寫一個上位機。可講通訊過來的數據存入 sql server的資料庫中

單片機端需要寫串口程序,PC 端需要些上位機軟體 VB可以寫用MSComm1 控制項
通訊例子如下

Dim i As Integer

Dim a As Integer
Dim t() As Byte

Private Sub Command1_Click()

If Command1.Caption = "打開串口" Then
'Shape1.Visible = True
Shape1.FillColor = &HFF&
Shape1.BackColor = &HFF&
Shape1.BorderColor = &HFF&

Command2.Enabled = True
Command3.Enabled = True
Command1.Caption = "關閉串口"
'MSComm1.CommPort = 1 '設定Com1口
MSComm1.CommPort = Combo1.Text '設定Com1口
If MSComm1.PortOpen = False Then
'MSComm1.Settings = "4800,N,8,1" '4800波特率,無校驗,8位數據位,1位停止位
MSComm1.Settings = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text '4800波特率,無校驗,8位數據位,1位停止位

MSComm1.InputLen = 1 '讀取接收緩沖區的所有字元
MSComm1.InputLen = 5
MSComm1.InBufferSize = 5 '設置接收緩沖區為1024位元組
MSComm1.OutBufferSize = 5 '設置發送緩沖區為512位元組
MSComm1.SThreshold = 0 '不觸發發送事件
MSComm1.RThreshold = 1 '每一個字元到接收緩沖區都觸發接收事件
MSComm1.PortOpen = True '打開串口
End If
MSComm1.OutBufferCount = 0 '清空發送緩沖區
MSComm1.InBufferCount = 0 '清空接收緩沖區
Dim temp() As Byte
Else
'Option2.Value = False
'Option1.Value = False
'Shape1.Visible = False
Shape1.BackColor = &H808080
Shape1.BorderColor = &H808080
Shape1.FillColor = &H808080

Command2.Enabled = False
'Command3.Enabled = False
MSComm1.PortOpen = False
Command1.Caption = "打開串口"

End If

End Sub

Private Sub Command2_Click()
'Command2.Enabled = False
'Option2.Value = False
'Option1.Value = False

'Shape2.Visible = False
MSComm1.OutBufferCount = 0 '清空發送緩沖區
MSComm1.InBufferCount = 0 '清空接收緩沖區

't(0) = "255"

' MSComm1.Output = t

MSComm1.Output = Text2.Text
End Sub

Private Sub Command3_Click()
Text1.Text = ""

End Sub

Private Sub Command5_Click() '退出
End
End Sub

Private Sub Command6_Click()
Text2.Text = ""
End Sub

Private Sub Command7_Click()
If Command7.Value Then
'Command7.Visible = False
Command1.Visible = True
Command2.Visible = True
Command3.Visible = True
Command6.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Combo1.Visible = True
Combo2.Visible = True
Combo3.Visible = True
Combo4.Visible = True
Combo5.Visible = True

Text1.Visible = True
Text2.Visible = True
Frame1.Visible = True
Frame2.Visible = False
'Command3.Visible = False
'Option1.Value = False
Shape1.Visible = True

Else
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
Label7.Visible = False
Combo1.Visible = False
Combo2.Visible = False
Combo3.Visible = False
Combo4.Visible = False
Combo5.Visible = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Text1.Visible = False
Text2.Visible = False
Frame1.Visible = False
Frame2.Visible = False
End If
End Sub

Private Sub Form_Load()

MSComm1.InBufferCount = 0 '清除發送緩沖區數據
MSComm1.OutBufferCount = 0 '清除接收緩沖區數據
ReDim t(0)
t(0) = "0"
Combo1.AddItem "1"
Combo1.AddItem "2"
Combo1.AddItem "3"
Combo1.AddItem "4"
'Combo1.Text = "1"
Combo2.AddItem "300"
Combo2.AddItem "600"
Combo2.AddItem "1200"
Combo2.AddItem "2400"
Combo2.AddItem "4800"
Combo2.AddItem "9600"
Combo2.AddItem "19200"
Combo3.AddItem "N"
Combo3.AddItem "O"
Combo3.AddItem "E"
Combo4.AddItem "8"
Combo4.AddItem "7"
Combo4.AddItem "6"
Combo5.AddItem "1"
Combo5.AddItem "2"
Combo5.AddItem "3"

End Sub

Private Sub MSComm1_OnComm()
Dim s1 As String
Dim s2 As String
Select Case MSComm1.CommEvent

Case comEventOverrun '數據丟失
Text_SEND.Text = "" '清空發送緩沖區
Text_RECV.Text = "" '清空接收緩沖區
Text_SEND.SetFocus
Exit Sub
Case comEventRxOver '接收緩沖區溢出
Text_SEND.Text = "" '清空發送緩沖區
Text_RECV.Text = "" '清空接收緩沖區
Text_SEND.SetFocus
Exit Sub
Case comEventTxFull '發送緩沖區已滿
Text_SEND.Text = "" '清空發送緩沖區
Text_RECV.Text = "" '清空接收緩沖區
Text_SEND.SetFocus
Exit Sub
Case comEvReceive '接收字元數據
Dim Buffer As Variant
MSComm1.InputLen = 1
MSComm1.InputMode = comInputModeBinary '二進制傳輸
Buffer = MSComm1.Input
'Text1.Text = Buffer(0)
's2 = Buffer(1)

Text1.Text = Text1.Text & (Val(MSComm1.Input)) & " "

Case Else

End Select

End Sub

Private Sub Option1_Click()

End Sub

8. Java接收sqlserver2000存儲過程返回結果集組合

我這里只有使用SQL語句查詢的結果
public List SearchAll(){
List l = new ArrayList();
EmployeeBean ea = null;
ResultSet rs = null;
PreparedStatement ps = null;
Connection con = null;
sql = "查詢的SQL語句";
try {
con = BaseDAO.GetConnection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
ea = new EmployeeBean();
ea.setId(rs.getInt(1));
ea.setDerpartId(rs.getInt(2));
ea.setName(rs.getString(3));
ea.setPassword(rs.getString(4));
l.add(ea);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
BaseDAO.close(rs, ps, con);
}
return l;
}

9. c#怎樣接受SQL的返回值

首先導入命名空間:
using System.Data;
using System.Data.SqlClient;
下面是我寫的一個方法,返回的是DataSet對象,執行傳過來的sql語句並將結果綁定到DataSet中,這樣你在訪問的時候就可以直接訪問DataSet對象中的數據。
public static DataSet GetDataSet(string sqlStr)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
try
{
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(sqlStr, con);
sda.Fill(ds);
return ds;
}
catch (Exception ee)
{
throw new Exception(ee.Message);
}
}
}
我們訪問DataSet對象中的數據:
foreach(DataRow row in ds.Tables[0].Rows)
{
//通過row["列的索引"].ToString()或者是通過row["列名"]來訪問DataSet中的數據
//這個ds就是你通過上面的方法返回的對象
}
除了上面的這種方法呢,你也可以將數據綁定到SqlDataReader對象中,但是呢SqlDataReader對象必須保持資料庫是始終連接的,適用於那些最新更新的操作,而DataSet綁定後可以斷開連接,而DataSet對象就像是一個小型的資料庫保存在內存中,用的時候可以直接用。