20150504-日报
1、Delphi中的存储过程 参数 数据类型
Delphi7中的使用存储过程的话,加入要获取输入参数的话,一般都是通过这样的方式:
with spDelRights do
begin
if Active then Close;
Parameters.Clear;
Parameters.Refresh;
Parameters.ParamByName('username').Value:= edtUserName.Text; //当前界面的输入框
Parameters.ParamByName('menuid').Value:= DelRight.menu_id;
prepared:=true;
execProc;
MessageDlg('取消授权成功!',mtInformation,[mbOK],1);
end;
不知道为什么对于以下string类型的或发现参数值错误(在sql环境下直接执行sql脚本是没有任何问题的);
不知道什么原因(注:上面的代码是正确的执行的,这里只是表示以下,因为错误的已经被我删除了,但是忘了对比),不过有一种这种执行存储过程的执行方式:直接使用查询用的插件,然后将sql语句写为:call 存储过程名称(参数列表)
2、在数据输入时校验数据的合法性(一般第一种):
设计思路:凡是拥护输入非法数据的方式有两种方式:
1、禁止用户输入输入非法数据,即屏蔽掉键盘上的一些键;
2、在用户输入非法数据后,显示提醒信息,并清空数据;
实现:通过实现键盘按键的监听方法
procedure TfrmEditInfo.edtIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (((key >= #48) and (key <= #57)) or (Key = '.')or (key = #8)) then
Key := #0;
//以上判断条件是:非 数字 小数点
//中文句号是缺陷 --已解决,只要正常的'.'判断即可!无需想太多
end;
监听键值的方式:
1、ASCII码与key值对比;
2、如果是个别的还或者有中英文区别的就可以使用:
if key ='?' then //直接对字符对比,因为key的数据类型是char