zoukankan      html  css  js  c++  java
  • MYSQL 存储过程学习笔记

    1、ID注册


    存储过程代码:

    DELIMITER $$;
    DROP PROCEDURE IF EXISTS `zebra`.`AddUser`$$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `AddUser`(in Uid varchar(50), in Upwd varchar(50), in Uquest varchar(50), in Uanswer varchar(50), out RegReturnValue int)
    BEGIN
    DECLARE ChkID varchar(50);
    select LOGINID from login where LOGINID = Uid into ChkID;
    if (ChkID <> '') then
      set RegReturnValue = 10;
    else
      insert into login (LOGINID, `PASSWORD`, QUESTION1, ANSWER1)VALUES(Uid, Upwd, Uquest, Uanswer);
      set RegReturnValue = 20;
    end if;
    END$$
    DELIMITER ;$$


    使用:
    procedure TForm1.btn1Click(Sender: TObject);
    var
      ErrorCode:Integer;
    begin
      try
        mystrdprc1.StoredProcName := 'AddUser';
        mystrdprc1.Params.ParamByName('Uid').Value := 'eboy';
        mystrdprc1.Params.ParamByName('Upwd').Value := 'eewwee';
        mystrdprc1.Params.ParamByName('Uquest').Value := 'MeiPaiHao';
        mystrdprc1.Params.ParamByName('Uanswer').Value := '140140';
        mystrdprc1.ExecProc;
        ErrorCode := mystrdprc1.Params.ParamByName('RegReturnValue').Value;
        case ErrorCode of
          10: ShowMessage('ID已存在。');
          20: ShowMessage('注册成功。');
        end;
        mystrdprc1.Close;
      except
      end;
    end;



    2、密码修改


    存储过程代码:

    DELIMITER $$;
    DROP PROCEDURE IF EXISTS `zebra`.`EditPwd`$$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `EditPwd`(in Uid varchar(50), in OldPwd varchar(50), in NewPwd varchar(50), out EditPwdReturnValue int)
    BEGIN
    DECLARE ChkID varchar(50);
    DECLARE ChkPwd varchar(50);
    select LOGINID from login where LOGINID = Uid into ChkID;
    if (ChkID = Uid) then
      select `PASSWORD` from login where LOGINID = Uid into ChkPwd;
      if (ChkPwd = OldPwd) then
       update login set `PASSWORD` = NewPwd where LOGINID = Uid;
       set EditPwdReturnValue = 30; #?????????
      else
       set EditPwdReturnValue = 20; #??????????
      end if;
    else
      set EditPwdReturnValue = 10; #ID??????
    end if;
    END$$
    DELIMITER ;$$


    使用:

    procedure TForm1.btn2Click(Sender: TObject);
    var
      ErrorCode:Integer;
      ad:string;
    begin
      try
        mystrdprc1.StoredProcName := 'EditPwd';
        mystrdprc1.Params.ParamByName('Uid').Value := 'eboy';
        mystrdprc1.Params.ParamByName('OldPwd').Value := '12333';
        mystrdprc1.Params.ParamByName('NewPwd').Value := '1233d3';
        mystrdprc1.ExecProc;
        ErrorCode := mystrdprc1.Params.ParamByName('EditPwdReturnValue').Value;
        case ErrorCode of
          10: ShowMessage('ID不存在。');
          20: ShowMessage('旧密码错误。');
          30: ShowMessage('修改密码成功。');
        end;
        mystrdprc1.Close;
      except
      end;
    end;

  • 相关阅读:
    D
    NOI 1.7编程基础之字符串(35题)
    HYSBZ 2145 悄悄话
    POJ 2406 Power Strings
    POJ 3461 Oulipo[附KMP算法详细流程讲解]
    POJ 3974 Palindrome
    POJ 1002 487-3279
    POJ 1182 食物链
    POJ 2524 Ubiquitous Religions
    HDU 1251 统计难题
  • 原文地址:https://www.cnblogs.com/jxgxy/p/1342190.html
Copyright © 2011-2022 走看看