MYSQL – 預存程序學習筆記

來源:互聯網
上載者:User

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;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.