存储过程取余数
㈠ 在 sql select 语句中 如何获取 存储过程的返回值
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。
而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。
示例:
createproceredbo.pr_add@aint,@bint,@cintoutput
as
set@c=@a+@b
go
调用:
declare@vint
executedbo.pr_add1,2,@voutput
select@v
㈡ SQL SERVER閲岄溃濡备綍鍦ㄥ瓨鍌ㄨ繃绋嬮噷闱㈣幏鍙栧彟涓涓瀛桦偍杩囩▼镓杩斿洖镄勮〃镄勬暟鎹
棣栧厛闇瑕佺煡阆撯滃彟涓涓瀛桦偍杩囩▼钬濈殑缁撴灉闆嗙殑镓链夊垪镄勭被鍨嬨
锅囱锯滃彟涓涓瀛桦偍杩囩▼钬濈殑钖嶅瓧鏄痵p1锛屾病链夊弬鏁帮纴杩斿洖镄勭粨鏋滈泦鍏3鍒楋纴鍏ㄩ儴涓篿nt鍨嬶纴闾d箞钬滃瓨鍌ㄨ繃绋嬧濋噷娣诲姞涓涓涓庣粨鏋滈泦鍒楁暟鐩稿悓镄勪复镞惰〃鎴栬〃鍙橀噺鐢ㄤ簬鎺ユ敹钬滃彟涓涓瀛桦偍杩囩▼钬濈殑缁撴灉闆
濡备笅
CREATE PROCEDURE sp2
AS
DECLARE @t table(a int,b int,c int)
INSERT INTO @t(a,b,c)
EXEC sp1
SELECT * FROM @t
浣跨敤SQLSERVER瀛桦偍杩囩▼鍙浠ュ緢澶х殑鎻愰珮绋嫔簭杩愯岄熷害锛岀亩鍖栫紪绋嬬淮鎶ら毦搴︼纴鐜板凡寰楀埌骞挎硾搴旂敤銆
鍒涘缓瀛桦偍杩囩▼
銆銆鍜屾暟鎹琛ㄤ竴镙凤纴鍦ㄤ娇鐢ㄤ箣鍓嶉渶瑕佸垱寤哄瓨鍌ㄨ繃绋嬶纴瀹幂殑绠鏄庤娉曟槸锛
寮旷敤:
Create PROC 瀛桦偍杩囩▼钖岖О
[鍙傛暟鍒楄〃锛埚氢釜浠モ,钬濆垎闅旓级]
AS
SQL 璇鍙
渚嬶细
寮旷敤:
Create PROC upGetUserName
@intUserId INT,
@ostrUserName NVARCHAR(20) OUTPUT -- 瑕佽緭鍑虹殑鍙傛暟
AS
BEGIN
-- 灏唘Name镄勫艰祴缁 @ostrUserName 鍙橀噺锛屽嵆瑕佽緭鍑虹殑鍙傛暟
Select @ostrUserName=uName FROM uUser Where uId=@intUserId
END
銆銆鍏朵腑 Create PROC 璇鍙ワ纸瀹屾暣璇鍙ヤ负Create PROCEDURE锛夌殑镒忔濆氨鏄锻婅瘔SQL SERVER锛岀幇鍦ㄩ渶瑕佸缓绔嬩竴涓瀛桦偍杩囩▼锛寀pGetUserName 灏辨槸瀛桦偍杩囩▼钖岖О锛孈intUserId 鍜 @ostrUserName 鍒嗗埆鏄璇ュ瓨鍌ㄨ繃绋嬬殑涓や釜鍙傛暟锛屾敞镒忥纴鍦⊿QL SERVER涓锛屾墍链夌敤鎴峰畾涔夌殑鍙橀噺閮戒互钬淍钬濆紑澶达纴OUTPUT鍏抽敭瀛楄〃绀鸿繖涓鍙傛暟鏄鐢ㄦ潵杈揿嚭镄勶纴AS涔嫔悗灏辨槸瀛桦偍杩囩▼鍐呭逛简銆傚彧瑕佸皢浠ヤ笂浠g爜鍦ㄢ沧煡璇㈠垎鏋愬櫒钬濋噷镓ц屼竴娆★纴SQL SERVER灏变细鍦ㄥ綋鍓嶆暟鎹搴扑腑鍒涘缓涓涓钖崭负钬涡pGetUserName钬濈殑瀛桦偍杩囩▼銆备綘鍙浠ユ墦寮钬滀紒涓氱$悊鍣ㄢ濓纴阃夋嫨褰揿墠镎崭綔镄勬暟鎹搴掳纴铹跺悗鍦ㄥ乏杈圭殑镙戝瀷鍒楄〃涓阃夋嫨钬滃瓨鍌ㄨ繃绋嬧濓纴姝ゆ椂灏卞彲浠ュ湪鍙宠竟镄勫垪琛ㄤ腑鐪嫔埌浣犲垰鍒氩垱寤虹殑瀛桦偍杩囩▼浜嗭纸濡傛灉娌℃湁锛屽埛鏂颁竴涓嫔嵆鍙锛夈
浜屻佸瓨鍌ㄨ繃绋嬬殑璋幂敤
銆銆涔嫔墠宸茬粡鍒涘缓浜嗕竴涓钖崭负钬涡pGetUserName钬濈殑瀛桦偍杩囩▼锛屼粠瀛楅溃鐞呜В璇ュ瓨鍌ㄨ繃绋嬬殑锷熻兘鏄鐢ㄦ潵鍙栧缑镆愪竴涓鐢ㄦ埛镄勫悕绉般傚瓨鍌ㄨ繃绋嫔缓绔嫔ソ浜嗭纴鎺ヤ笅𨱒ュ氨鏄瑕佸湪搴旂敤绋嫔簭閲岃皟鐢ㄤ简锛屼笅闱㈢湅涓涓嫔湪ASP绋嫔簭閲岀殑璋幂敤銆
寮旷敤:
Dim adoComm
钬// 鍒涘缓涓涓瀵硅薄锛屾垜浠鐢ㄦ潵璋幂敤瀛桦偍杩囩▼
Set adoComm = CreateObject("ADODB.Command")
With adoComm
钬// 璁剧疆杩炴帴锛岃 adoConn 涓哄凡缁忚繛鎺ョ殑 ADODB.Connection 瀵硅薄
.ActiveConnection = adoConn
钬// 绫诲瀷涓哄瓨鍌ㄨ繃绋嬶纴adCmdStoredProc = 4
.CommandType = 4
钬// 瀛桦偍杩囩▼钖岖О
.CommandText = "upGetUserName"
钬// 璁剧疆鐢ㄦ埛缂栧彿
.Parameters.Item("@intUserId").Value = 1
钬// 镓ц屽瓨鍌ㄨ繃绋
.Execute
钬// 鍙栧缑浠庡瓨鍌ㄨ繃绋嬭繑锲炵殑鐢ㄦ埛钖岖О
Response.Write "鐢ㄦ埛钖嶏细" & .Parameters.Item("@ostrUserName").Value
End With
钬// 閲婃斁瀵硅薄
Set adoComm = Nothing
銆銆阃氲繃浠ヤ笂涓ゆワ纴宸茬粡鍙浠ュ垱寤哄拰浣跨敤绠鍗旷殑瀛桦偍杩囩▼浜嗐备笅闱㈡潵鐪嬩竴涓绋嶅井澶嶆潅镣圭殑瀛桦偍杩囩▼锛屼互杩涗竴姝ヤ简瑙e瓨鍌ㄨ繃绋嬬殑搴旂敤銆
涓夈佸瓨鍌ㄨ繃绋嬬殑瀹为檯搴旂敤
銆銆鐢ㄦ埛锏诲綍鍦ˋSP椤圭洰涓缁忓父浼氢娇鐢ㄥ埌锛屼絾浣跨敤瀛桦偍杩囩▼𨱒ュ仛楠岃瘉鍙鑳戒笉澶氾纴闾d箞锅氢緥瀛愶纴鍐欎竴涓绠鍗旷殑鐢ㄦ埛锏诲綍楠岃瘉镄勫瓨鍌ㄨ繃绋嬨
寮旷敤:
Create PROC upUserLogin
@strLoginName NVARCHAR(20),
@strLoginPwd NVARCHAR(20),
@blnReturn BIT OUTPUT
AS
-- 瀹氢箟涓涓涓存椂鐢ㄦ潵淇濆瓨瀵嗙爜镄勫彉閲
DECLARE @strPwd NVARCHAR(20)
BEGIN
-- 浠庤〃涓镆ヨ㈠綋鍓岖敤鎴风殑瀵嗙爜锛岃祴鍊肩粰 @strPwd 鍙橀噺锛屼笅闱㈣佸逛粬杩涜屾瘆杈
Select @strPwd=uLoginPwd FROM uUser Where uLoginName=@strLoginName
IF @strLoginPwd = @strPwd
BEGIN
SET @blnReturn = 1
-- 镟存柊鐢ㄦ埛链钖庣橱褰曟椂闂
Update uUser SET uLastLogin=GETDATE() Where uLoginName=@strLoginName
END
ELSE
SET @blnReturn = 0
END
銆銆鐢ㄦ埛锏诲綍镄勫瓨鍌ㄨ繃绋嫔缓绔嫔ソ浜嗐傛敞镒忥纴鍦ㄤ竴涓鍖哄烟鍐呭傛灉链夊氭浔璇鍙ユ椂锛屽繀闇浣跨敤BEGIN...END鍏抽敭瀛椼
寮旷敤:
Dim adoComm
钬// 鍒涘缓涓涓瀵硅薄锛屾垜浠鐢ㄦ潵璋幂敤瀛桦偍杩囩▼
Set adoComm = CreateObject("ADODB.Command")
With adoComm
钬// 璁剧疆杩炴帴锛岃 adoConn 涓哄凡缁忚繛鎺ョ殑 ADODB.Connection 瀵硅薄
.ActiveConnection = adoConn
钬// 绫诲瀷涓哄瓨鍌ㄨ繃绋嬶纴adCmdStoredProc = 4
.CommandType = 4
钬// 瀛桦偍杩囩▼钖岖О
.CommandText = "upUserLogin"
钬// 璁剧疆锏诲綍钖岖О
.Parameters.Item("@strLoginName").Value = "***"
钬// 璁剧疆锏诲綍瀵嗙爜
.Parameters.Item("@strLoginPwd").Value = "123456"
钬// 镓ц屽瓨鍌ㄨ繃绋
.Execute
钬// 鍒ゆ柇鏄钖︾橱褰曟垚锷
If .Parameters.Item("@blnReturn").Value = 1 Then
Response.Write "鎭锽滀綘锛岀橱褰曟垚锷燂紒"
Else
Response.Write "涓嶆槸钖э纴濂藉儚阌欎简鍝︺伞伞"
End If
End With
钬// 閲婃斁瀵硅薄
Set adoComm = Nothing
銆銆阃氲繃浠ヤ笂镄勬ラわ纴绠鍗旷敤鎴风橱褰曢獙璇佽繃绋嬩篃锅氩畬浜嗭纴鐜板湪鍙瑕佹妸瀹冩暣钖埚埌绋嫔簭涓灏卞彲浠ュ疄鐜扮亩鍗旷殑鐢ㄦ埛锏诲綍楠岃瘉浜嗭纴鍏充簬鍏朵粬缁呜妭灏辩敱浣犺嚜宸辨潵澶勭悊浜嗐
銆銆涓婇溃浠嬬粛镄勪袱涓瀛桦偍杩囩▼閮芥槸鍙杩斿洖涓涓鍊肩殑锛屼笅闱㈡垜浠𨱒ョ湅涓涓杩斿洖涓涓璁板綍闆嗙殑瀛桦偍杩囩▼銆
寮旷敤:
Create PROC upGetUserInfos
@intUserGroup INT
AS
BEGIN
-- 浠庢暟鎹搴扑腑鎶藉彇绗﹀悎𨱒′欢镄勬暟鎹
Select uName,uGroup,uLastLogin FROM uUser Where uGroup=@intUserGroup
-- 鎻掑叆涓鍒楀悎璁
UNION
Select 钬椤悎璁′汉鏁:钬,COUNT(uGroup),NULL FROM uUser Where uGroup=@intUserGroup
END
銆銆鐜板湪鎴戜滑𨱒ョ湅涓涓婣SP绋嫔簭镄勮皟鐢ㄣ
寮旷敤:
Dim adoComm
Dim adoRt
钬// 鍒涘缓涓涓瀵硅薄锛屾垜浠鐢ㄦ潵璋幂敤瀛桦偍杩囩▼
Set adoComm = CreateObject("ADODB.Command")
Set adoRs = CreateObject("ADODB.Recordset")
With adoComm
钬// 璁剧疆杩炴帴锛岃 adoConn 涓哄凡缁忚繛鎺ョ殑 ADODB.Connection 瀵硅薄
.ActiveConnection = adoConn
钬// 绫诲瀷涓哄瓨鍌ㄨ繃绋嬶纴adCmdStoredProc = 4
.CommandType = 4
钬// 瀛桦偍杩囩▼钖岖О
.CommandText = "upGetUserInfos"
钬// 璁剧疆鐢ㄦ埛缁
.Parameters.Item("@intUserGroup").Value = 1
钬// 镓ц屽瓨鍌ㄨ繃绋嬶纴鍜屼互涓婂嚑涓渚嫔瓙涓嶅悓锛岃繖閲屼娇鐢≧ecordSet镄凮pen鏂规硶
adoRs.Open adoComm
钬// 鏄剧ず绗涓涓鍊
Response.write adoRs.Fields(0).Value
End With
钬// 閲婃斁瀵硅薄
Set adoRs = Nothing
Set adoComm = Nothing
㈢ 如何在PB脚本当中获取存储过程的返回值
没有见过调用存储过程象调用游标一样的代码,一般我是这样声明的:DECLARE Lproc_1 PROCEDURE FOR
proc_1 @as_int = :li_int OUTPUT ;
execute Lproc_cw_gz_personal_cal ;
变量li_int即为返回的值。如果要同时返回多行的数据,可以使用DATAWINDOW或者是DATASTORE来得到结果集:
string ls_sql_syntax , ls_syntax
string ls_error
integer li_ini
ls_sql_syntax = 'execute proc_1 "' + string ( li_ini ) + '"'
Datastore ldt_item
ldt_item = Create Datastore
ls_syntax = SQLCA.SyntaxFromSQL( ls_sql_syntax '', ls_error )
IF Len( ls_error ) > 0 THEN
MessageBox("提示信息", "创建数据存储窗口语法出现错误!" + ls_error )
RETURN - 1
END IF
ldt_item .Create( ls_syntax, ls_error )
IF Len( ls_error ) > 0 THEN
MessageBox("提示信息", "创建数据存储对象出现错误!" + ls_error )
RETURN - 1
END IF
ldt_item . Settransobject ( sqlca )
ldt_item . retrieve ( )
后面就神滑通常轮判的遍历了!游桐腊
㈣ Oracle中怎样用存储过程将一段字符串以逗号为界截取,并将得到的子串存到另一张表中
㈤ c语言中怎样取余数
很简单,只需要一步,也就是只需要一张图:C语言提供了一个取余数的运算符%,称之为“模”运算符。只有两个整数之间才可以进行模运算!a % b 表示 用b来整除a,商整数,得到余数。
如:5%3 = 2、4%3 =1、3%3 =0。
(5)存储过程取余数扩展阅读
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
㈥ 取出exec后的返回值
完整使用exec利用存储过程取出返回值,如
declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from alarm_Info '
exec sp_executesql @sqls,N'@a int output',@num output
print @num
㈦ SQL中存储过程调用存储过程,怎么取返回值
存储过程中的第一个参数 @title 将接收由调用程序指定的输入值,而第二个参数 @ytd_sales 将向调用程序返回该值。SELECT 语句使用 @title 参数以获得正确的 ytd_sales 值,并将该值赋予 @ytd_sales 输出参数。
CREATE PROCEDURE get_sales_for_title
@title varchar(80), -- This is the input parameter.
@ytd_sales int OUTPUT -- This is the output parameter.
AS
-- Get the sales for the specified title and
-- assign it to the output parameter.
SELECT @ytd_sales = ytd_sales
FROM titles
WHERE title = @title
RETURN
GO