搜索
 找回密码
 加入

求 跳过重复选种族的 存储过程 ACCOUNT_LOGIN

hywz 2011-6-28 13:51:16 1390
本帖最后由 hywz 于 2009-12-8 20:58 编辑

谢谢CT的存储过程 ACCOUNT_LOGIN,十分感谢。
问题已找到,对应的TB_USER表里缺项了,补全了就可以执行该存储了。

7 回复

ctgwglzc
2009-12-8 20:17:46
点击查看详情
  1. [code]CREATE PROCEDURE ACCOUNT_LOGIN
  2. @AccountID varchar(21),
  3. @Password varchar(13),
  4. @nRet smallint OUTPUT

  5. AS
  6. select @nRet = count(straccountid) from tb_user where straccountid = @AccountID
  7. if @nRet = 0
  8. begin
  9.    RETURN
  10. end


  11. select @nRet = strAuthority from tb_user where straccountid = @AccountID
  12. if @nRet = 255
  13. begin
  14. set @nRet=4
  15. return
  16. end


  17. DECLARE @Nation tinyint, @CharNum smallint
  18. SET @Nation = 0
  19. SET @CharNum = 0

  20. DECLARE @pwd varchar(13)
  21. set @pwd=null
  22. SELECT @pwd = strPasswd FROM [dbo].[TB_USER] WHERE strAccountID = @AccountID  and  idays>0
  23. IF @pwd IS null
  24. BEGIN
  25. --SET @nRet = 0
  26.         SET @nRet = 4
  27. RETURN
  28. END
  29. ELSE IF @pwd <> @Password
  30. BEGIN
  31. --SET @nRet = 0
  32.         SET @nRet = 3
  33. RETURN
  34. END


  35. SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
  36. IF @@ROWCOUNT = 0
  37. BEGIN
  38. SET @nRet = 1
  39. RETURN
  40. END
  41. IF @CharNum = 0
  42. BEGIN
  43. SET @nRet = 1
  44. RETURN
  45. END
  46. ELSE
  47. BEGIN
  48. SET @nRet = @Nation+1
  49.         END
  50. DECLARE @premiumExpire datetime,@nDays int
  51. DELETE FROM PREMIUM_SERVICE WHERE strAccountID = @AccountID
  52. SELECT @premiumExpire=premiumExpire FROM TB_USER WHERE strAccountID = @AccountID
  53. IF @premiumExpire IS NOT NULL
  54. BEGIN
  55.         SET @nDays = DateDiff(d, getDate(), @premiumExpire)
  56.         IF @nDays>0
  57.                 INSERT INTO PREMIUM_SERVICE(strAccountID,strType,nDays) VALUES(@AccountID,4,@nDays)
  58. END
  59. GO
复制代码
[/code]
evaydd
2009-12-13 20:39:26
为什么直接进艾莫尔的界面呢?没有s的
cl1024
2009-12-15 15:41:43
恩 能不能设成第一次进去的时候可以选种族 然后再登录的时候就不用了
scott9
2009-12-16 04:49:09
謝謝.
oncewill
2010-2-5 11:15:34
为什么新创建的存储过程会提示有语法错误呢。。我用的SQL2000..
oncewill
2010-2-5 11:16:47
能看到图片么?
bully
2011-6-28 13:51:16
&#304; liked this procedure
高级模式
游客