20150504-日报

1、Delphi中的存储过程 参数 数据类型
Delphi7中的使用存储过程的话,加入要获取输入参数的话,一般都是通过这样的方式:
  1. with spDelRights do
  2. begin
  3. if Active then Close;
  4. Parameters.Clear;
  5. Parameters.Refresh;
  6. Parameters.ParamByName('username').Value:= edtUserName.Text; //当前界面的输入框
  7. Parameters.ParamByName('menuid').Value:= DelRight.menu_id;
  8. prepared:=true;
  9. execProc;
  10. MessageDlg('取消授权成功!',mtInformation,[mbOK],1);
  11. end;
不知道为什么对于以下string类型的或发现参数值错误(在sql环境下直接执行sql脚本是没有任何问题的);
不知道什么原因(注:上面的代码是正确的执行的,这里只是表示以下,因为错误的已经被我删除了,但是忘了对比),不过有一种这种执行存储过程的执行方式:直接使用查询用的插件,然后将sql语句写为:call 存储过程名称(参数列表)

2、在数据输入时校验数据的合法性(一般第一种):
设计思路:凡是拥护输入非法数据的方式有两种方式:
    1、禁止用户输入输入非法数据,即屏蔽掉键盘上的一些键;
    2、在用户输入非法数据后,显示提醒信息,并清空数据;
实现:通过实现键盘按键的监听方法
  1. procedure TfrmEditInfo.edtIDKeyPress(Sender: TObject; var Key: Char);
  2. begin
  3. if not (((key >= #48) and (key <= #57)) or (Key = '.')or (key = #8)) then
  4. Key := #0;
  5. //以上判断条件是:非 数字 小数点
  6. //中文句号是缺陷 --已解决,只要正常的'.'判断即可!无需想太多
  7. end;
监听键值的方式:
    1、ASCII码与key值对比;
    2、如果是个别的还或者有中英文区别的就可以使用:
  1. if key ='?' then //直接对字符对比,因为key的数据类型是char

    





原文地址:https://www.cnblogs.com/ufindme/p/4477758.html