一个用户登陆,验证密码的小程序,代码如下
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.ParamByName('work_name').Value=edit1.Text;
query1.Open;
if query1.Fields[0].Value=NULL then
  begin
    showmessage('用户名错误');
    exit;  //退出系统
  end;
if query1.Fields[0].Value=edit2.Text then
  Form1.Close;
else
  begin
    showmessage('密码不正确');
    exit;
  end;end;请问query里的那个“work_name”是什么?
应该在哪里设置?
谢谢

解决方案 »

  1.   

    query1.sql.add('select * from t1 where workname=:work_name');work_name 就是参数啦, 你可以后来给值替换(ParamByName)
      

  2.   

    我知道是参数啊,但是我的意思就是说它是什么参数,在哪里取值?
    因为这不是自己的程序,希望各位大侠能帮小弟说明白些下面这段是什么意思呢?
    query1.Close;
    query1.ParamByName('work_name').Value=edit1.Text;
    query1.Open;
    完成什么功能?其中edit1是我用来输入用户名的文本域。
      

  3.   

    //楼主的源程序
    query1.Close;
    query1.ParamByName('work_name').Value=edit1.Text;
    query1.Open;
    //改为以下
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from user_info where name=:work_name and pwd=:password');
    query1.sql.parambyname('work_name').asstring:=trim(edit1.text);
    query1.sql.parambyname('pwd').asstring:=trim(edit2.text);
    query1.open;
    //其中 user_info为用户信息表,name代表用户名字段,类型为string;pwd代表密码字段,类型为string
      

  4.   

    query1.sql.parambyname('pwd').asstring:=trim(edit2.text);
    应改为
    query1.sql.parambyname('password').asstring:=trim(edit2.text);