各位大虾,我刚刚接触Delphi想制作一个登录的窗口,思想是这样的.
我在当前文件夹里建立一个Access数据库,里面有个login数据表,存放了用户登录的帐号和密码.
我的代码如下
procedure TForm1.BtnAdmOkClick(Sender: TObject);
var Id,Key,AdminId,AdmKey:string;
i:integer;
begin
  Id:=trim(EdtAdmId.Text);
  Key:=trim(EdtAdmKey.Text);
  with login.login.AdOQuery1 do
   begin
   close;
  login.ADOquery1.SQL.Clear;
  login.ADOquery1.SQL.Add('select * from login where AdmId='''+Id+' and AdmKey='''+Key+'''');
Open;
i:=recordcount;
end;
if i>0 then
Close;
else
begin
showmessage ('错误的用户名或密码,您无法使用本系统!');
application.Terminate ;
end;end;end.
其中 login.login.AdOQuery1 do这句自己不懂是看了人家的,因为我的数据库名字为login,数据表名也是login,希望各位大虾指点,另外怎样加密数据表里面密码,让别人看起来是乱码?谢谢各位`!先谢了`!

解决方案 »

  1.   

    你的这段代码能运行吗?with login.login.AdOQuery1 do是开域语句,用来打开login单元文件里的login类的adoquery1加密的话,你可以先把密码字符串加密后再存到数据库
      

  2.   

    不能运行,显示login未定义,请各位指点,我是菜鸟,请您尽量详细点,先谢过了`!
      

  3.   

    with login.login.AdOQuery1 do
    你是真敢贴,还是好好看看书吧,
    有些事情能老是靠别人,尤其是一些简单的东西,
    老是靠别人是不行的!!!
      

  4.   

    你可以这样,在你的Form1(假设这就是你的登陆窗体)上放一个ADOQuery1,在ConnectionString里配置好连接字串,然后把你的代码修改一下:
    procedure TForm1.BtnAdmOkClick(Sender: TObject);
    var 
      Id,Key,AdminId,AdmKey:string;
      i:integer;
    begin
      Id:=trim(EdtAdmId.Text);
      Key:=trim(EdtAdmKey.Text);
      with AdOQuery1 do  //修改这里
      begin
        close;
        login.ADOquery1.SQL.Clear;
        ////下边这句也有改动,请参考你原来的代码
        login.ADOquery1.SQL.Add('select * from login where AdmId='''+Id
                                +''' and AdmKey='''+Key+'''');
        Open;
        i:=recordcount;
      end;
      if i>0 then
      Close;
      else begin
        showmessage ('错误的用户名或密码,您无法使用本系统!');
        application.Terminate ;
      end;
    end;
      

  5.   

    尽信书不如无书!
    没有必要 login.login.adoquery
    我估计是书上面多印了一个吧。在当前form里放一个adoquery就可以了
    with adoquery1 do
    ...
    end;加密密码建议要用md5加密函数加密后再存入数据库,自己找个例子改编为delphi不就可以了么.
      

  6.   

    我觉得楼主是应该好好看看书,你定义的数据库名字为login,数据表名也是login,是在AdOQuery1中的 啊。
    AdOQuery1的属性中有database属性;数据表属性你直接在SQL语句中操作即可。
      

  7.   

    zhangl_cn 按照您的方法我试了,connectionstring连接成功如下:
    Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Mode=Read;Initial Catalog=e:\delphi\login.mdb代码我也修改了一下系统显示login未定义,不知道是何原因,请指教`!
      

  8.   

    不好意思,此处
        login.ADOquery1.SQL.Clear;
        ////下边这句也有改动,请参考你原来的代码
        login.ADOquery1.SQL.Add('select * from login where AdmId='''+Id
                                +''' and AdmKey='''+Key+'''');改为:
        SQL.Clear;
        ////下边这句也有改动,请参考你原来的代码
        SQL.Add('select * from login where AdmId='''+Id
                                +''' and AdmKey='''+Key+'''');即可 ^-^