1.獲取返回值
程序代碼
//存儲過程
// MYSQL
// @a int,
// @b int
//AS
// @a + @b
//GO
conn = new (.[""].());
conn.Open();
= new ("MYSQL", conn);
. = .;
..Add(new ("@a", .Int));
.["@a"].Value = 10;
..Add(new ("@b", .Int));
.["@b"].Value = 20;
..Add(new ("@", .Int));
.["@"]. = .;
.();
.Write(.["@"].Value.());
2.獲取輸出參數值
程序代碼
//存儲過程
// MYSQL
// @a int,
// @b int,
// @c int
//AS
// Set @c = @a + @b
//GO
conn = new (.[""].());
conn.Open();
= new ("MYSQL", conn);
. = .;
..Add(new ("@a", .Int));
.["@a"].Value = 20;
..Add(new ("@b", .Int));
.["@b"].Value = 20;
..Add(new ("@c", .Int));
.["@c"]. = .;
.();
.Write(.["@c"].Value.());
----------------------存儲過程共有三種返回值-------------------
/*(一)、參數返回值@parm2;
(二)、過程返回值 100;
(三)、數據集返回值 * from where age = @parm1
請問,如何得到三類返回值?
*/
table (
name (30),
age ,
key(name, age)
)
proc1
@parm1 ,
@parm2 (30)
as
@parm2 = ''
* from where age = @parm1
100
--(一)、參數返回值@parm2;
@re (30)
exec proc1 1,@re out
返回結果=@re
--(二)、過程返回值 100;
@re int,@parm2 (30)
exec @re=proc1 1,@parm2 out
返回結果=@re
--(三)、數據集返回值 * from where age = @parm1
--定義返回結果保存的臨時表(因為是返回記錄集,所以要用臨時表)
--調用返回結果
-- @re (30)
-- #re exec proc1 1,@re out
* into #re from ('',
'=zhou;uid=sa;pwd=zhou;=pubs','SET OFF;SET ON @re (30) exec proc1 ''1'',@re out') as a
--顯示結果
* from #re
--處理完成后刪除臨時表
drop table #re
--返回數據集方式一:
/*補充*/
N' * from pubs.dbo. where = @level',
N'@level ',
@level = 35
或者多條件
N' * from where = @ and =@ ',
N'@ int,@ int',
@ = 1,@=1
--返回單個值:
/* 補充 */
@sql (200)
@cnt int
set @sql=N' @cnt=count(*) from '
exec @sql,N'@cnt int ',@cnt