一个关于支付的SQL-Procedure
2009-10-28 12:35
162 查看
今天测试了一下,昨天的没过,重新改了一下
------------------------------------
--用途:增加一条记录
--项目名称:CodematicDemo
--说明:
--时间:2009-10-28 11:03:09
------------------------------------
Create PROCEDURE [dbo].[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_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 @returnValue=0
Set @R_PayLog = Convert(varchar,@R_RegDate,20)+':用户'+@R_UserName+'申请账户提现,提现金额:'+Convert(varchar,@R_PayMoney,1)+',手续费:'+
Convert(varchar,@R_CommissionMoney,1)
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 @R_PayBankNumer is null 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
Exec [UP_FinanceLogin_ADD] null,'1','申请提现',@R_UserName,@R_RegDate,@R_RegUserIP,'','',@ErrorMessage
End
Commit Transaction
return 0
Error:
Set @ErrorMessage = '提现申请操作失败,SQL错误,错误号:' + str(@@Error)
Set @RID = 0
Exec [UP_FinanceLogin_ADD] null,'1','申请提现',@R_UserName,@R_RegDate,@R_RegUserIP,'','',@ErrorMessage
RollBack Transaction --回滚操作
--记录操作
------------------------------------
--用途:增加一条记录
--项目名称:CodematicDemo
--说明:
--时间:2009-10-28 11:03:09
------------------------------------
Create PROCEDURE [dbo].[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_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 @returnValue=0
Set @R_PayLog = Convert(varchar,@R_RegDate,20)+':用户'+@R_UserName+'申请账户提现,提现金额:'+Convert(varchar,@R_PayMoney,1)+',手续费:'+
Convert(varchar,@R_CommissionMoney,1)
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 @R_PayBankNumer is null 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
Exec [UP_FinanceLogin_ADD] null,'1','申请提现',@R_UserName,@R_RegDate,@R_RegUserIP,'','',@ErrorMessage
End
Commit Transaction
return 0
Error:
Set @ErrorMessage = '提现申请操作失败,SQL错误,错误号:' + str(@@Error)
Set @RID = 0
Exec [UP_FinanceLogin_ADD] null,'1','申请提现',@R_UserName,@R_RegDate,@R_RegUserIP,'','',@ErrorMessage
RollBack Transaction --回滚操作
--记录操作
相关文章推荐
- 关于用sqlserverr创建一个Oracle的连接服务器问题
- 关于sql的一个问题
- 一个关于SQL的问题,做做看,好想跟经常遇到的有点不同
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 关于变量的一个奇怪的SQL
- 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,关于触发器SQL语句,完美解决
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 一个关于优化SQL的文章
- 一个关于SQL语句的练习题目
- 关于SQL优化的一个小试例子
- 一个关于 sql server 文件组测试sql
- 关于mybatis增删改查时条件为一个集合时如何利用foreach书写sql语句
- 关于Linq to sql 应用时出现的一个‘row not found or changed’ 异常
- 关于canal slave 解析sql错误的一个探究
- 一个关于JOIN的SQL语句
- 转一个关于优化sql的文章
- 一个关于SQL Server memory计数器的系列讲座(很详细)
- 求助:关于一个查询的SQL语句,请高人指点如何实现,谢谢!
- 一个关于SQL的笔试题目及解答
- 关于一个字符串的SQL语句