一個關於支付的SQL-Procedure
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UP_RegPay_ADD]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[UP_RegPay_ADD]
GO
------------------------------------
--用途:增加一條記錄
--專案名稱:CodematicDemo
--說明:
--時間:2009-10-28 11:03:09
------------------------------------
CREATE PROCEDURE UP_RegPay_ADD
@RID int output,
@R_UserName nvarchar(500),
@R_UserType int,
@R_PayMoney money,
@R_CommissionMoney money,
@R_RegUserIP nvarchar(50),
@R_RegDate datetime,
@R_PayDate datetime,
@R_Remarks nvarchar(4000)
AS
Declare @ErrorMessage varchar(1000),@R_PayBankName nvarchar(250),
@R_PayBankNumer varchar(100),@R_PayBankAddress varchar(1000),
@R_PayBankUserName varchar(150),@R_PayLog nvarchar(4000),
@returnValue int
Set @R_PayLog = @R_UserName+'在'+@R_RegDate+'申請賬戶金額支付,支付金額:'+@R_PayMoney+',手續費:'+@R_CommissionMoney
Set @R_PayLog = @R_PayLog + ',備註:'+@R_Remarks
--Set @ErrorMessage = '操作失敗,SQL錯誤,錯誤號:'
Begin Transaction
IF @R_UserType = 1
Begin
Update [WebSiteHost] Set
[Money] = [Money] - @R_PayMoney - @R_CommissionMoney,[W_FreezingMoney] = [W_FreezingMoney] + @R_PayMoney
Where [Money] > @R_PayMoney + @R_CommissionMoney And [Appearance] = 1 And [UserName] = @R_UserName
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
Select @R_PayBankName = [Bank],@R_PayBankNumer = [CardNumber],@R_PayBankAddress = [BankAddress],@R_PayBankUsername=[BankName]
From [WebSiteHost] Where [Appearance] = 1 And [UserName] = @R_UserName
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
INSERT INTO [RegPay](
[R_UserName],[R_UserType],[R_PayMoney],[R_CommissionMoney],[R_RegUserIP],[R_RegDate],
[R_Remarks],[R_PayLog],[R_PayBankName],[R_PayBankNumer],[R_PayBankAddress],[R_PayBankUserName]
)VALUES(
@R_UserName,@R_UserType,@R_PayMoney,@R_CommissionMoney,@R_RegUserIP,@R_RegDate,
@R_Remarks,@R_PayLog,@R_PayBankName,@R_PayBankNumer,@R_PayBankAddress,@R_PayBankUserName
)
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
SET @RID = @@IDENTITY
Set @ErrorMessage = '支付申請成功'
Set @returnValue = 1
GOTO RecordLog
End
Commit Transaction
Error:
RollBack Transaction --回滾操作
Set @ErrorMessage = '支付申請操作失敗,SQL錯誤,錯誤號:' + @@Error
Set @RID = 0
Set @returnValue=0
GOTO RecordLog
return 0
RecordLog:
Insert into [FinanceLogin](
[Affairs],[AffairsType],[UserName],[DataAndTime],[IP],[Remarks]
)Values(
'1','申請支付',@R_UserName,@R_RegDate,@R_RegUserIP,@ErrorMessage
)--記錄操作
return @returnValue
GO
drop procedure [dbo].[UP_RegPay_ADD]
GO
------------------------------------
--用途:增加一條記錄
--專案名稱:CodematicDemo
--說明:
--時間:2009-10-28 11:03:09
------------------------------------
CREATE PROCEDURE UP_RegPay_ADD
@RID int output,
@R_UserName nvarchar(500),
@R_UserType int,
@R_PayMoney money,
@R_CommissionMoney money,
@R_RegUserIP nvarchar(50),
@R_RegDate datetime,
@R_PayDate datetime,
@R_Remarks nvarchar(4000)
AS
Declare @ErrorMessage varchar(1000),@R_PayBankName nvarchar(250),
@R_PayBankNumer varchar(100),@R_PayBankAddress varchar(1000),
@R_PayBankUserName varchar(150),@R_PayLog nvarchar(4000),
@returnValue int
Set @R_PayLog = @R_UserName+'在'+@R_RegDate+'申請賬戶金額支付,支付金額:'+@R_PayMoney+',手續費:'+@R_CommissionMoney
Set @R_PayLog = @R_PayLog + ',備註:'+@R_Remarks
--Set @ErrorMessage = '操作失敗,SQL錯誤,錯誤號:'
Begin Transaction
IF @R_UserType = 1
Begin
Update [WebSiteHost] Set
[Money] = [Money] - @R_PayMoney - @R_CommissionMoney,[W_FreezingMoney] = [W_FreezingMoney] + @R_PayMoney
Where [Money] > @R_PayMoney + @R_CommissionMoney And [Appearance] = 1 And [UserName] = @R_UserName
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
Select @R_PayBankName = [Bank],@R_PayBankNumer = [CardNumber],@R_PayBankAddress = [BankAddress],@R_PayBankUsername=[BankName]
From [WebSiteHost] Where [Appearance] = 1 And [UserName] = @R_UserName
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
INSERT INTO [RegPay](
[R_UserName],[R_UserType],[R_PayMoney],[R_CommissionMoney],[R_RegUserIP],[R_RegDate],
[R_Remarks],[R_PayLog],[R_PayBankName],[R_PayBankNumer],[R_PayBankAddress],[R_PayBankUserName]
)VALUES(
@R_UserName,@R_UserType,@R_PayMoney,@R_CommissionMoney,@R_RegUserIP,@R_RegDate,
@R_Remarks,@R_PayLog,@R_PayBankName,@R_PayBankNumer,@R_PayBankAddress,@R_PayBankUserName
)
if @@rowCount < 1 Or @@Error <> 0 GOTO Error
SET @RID = @@IDENTITY
Set @ErrorMessage = '支付申請成功'
Set @returnValue = 1
GOTO RecordLog
End
Commit Transaction
Error:
RollBack Transaction --回滾操作
Set @ErrorMessage = '支付申請操作失敗,SQL錯誤,錯誤號:' + @@Error
Set @RID = 0
Set @returnValue=0
GOTO RecordLog
return 0
RecordLog:
Insert into [FinanceLogin](
[Affairs],[AffairsType],[UserName],[DataAndTime],[IP],[Remarks]
)Values(
'1','申請支付',@R_UserName,@R_RegDate,@R_RegUserIP,@ErrorMessage
)--記錄操作
return @returnValue
GO
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-617602/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於Android微信支付Android
- 一個關於recyclerView的bugView
- 關於UIInterfaceOrientation的一個bugUI
- 關於Sqlite的一個demoSQLite
- 程寅:關於支付流程的探討
- Oracle關於nvl的一個BugOracle
- 關於教程的一個問題
- 關於內購支付的流程和一些需要注意的坑
- 關於建行龍支付的聚合支付微信,支付寶 對接PC和H5H5
- 關於Integer面試的一個問題面試
- 關於range的一個知識點
- 關於一個公益專案的探究
- 聽同事關於一個ASM的故事ASM
- 一個關於Java Excel的問題JavaExcel
- 一個關於SessionBean呼叫的問題。SessionBean
- 一個關於prototype模式的問題?模式
- Java的一個關於“星球”的列舉Java
- 關於 JavaScript 字串的一個小知識JavaScript字串
- 一個關於JAVA GC的小實驗JavaGC
- Java關於IO的一個小工具Java
- 關於SSM框架的一個簡單DemoSSM框架
- 一個關於遊戲AI不太野的野望遊戲AI
- 關於ThreadLocal變數的一個坑thread變數
- 樹莓派:一個關於教育的故事樹莓派
- 關於資料儲存的一個故事
- 求助關於JdonFrameworkTest的一個問題Framework
- 關於系統效能的一個問題
- 一個關於jdbc2的問題JDBC
- 關於jdbc的一個問題,高手解惑JDBC
- 關於抽象工廠的一個問題?抽象
- 爭用!!!!一個關於JDBC的問題!JDBC
- 關於一個建立型模式的討論:模式
- 關於singleton模式的一個問題?模式
- 碰到一個棘手的問題——關於httpclient。HTTPclient
- 關於責任鏈模式的一個例子模式
- 一個一直困惑的關於jdbc in 的問題JDBC
- 一個關於wait/notify與鎖關係的探究AI
- Flutter關於一個登入頁Flutter