Delphi中的数据库用户名和密码?

时间:2012-07-13 22:53:26

标签: delphi delphi-7

我想在Delphi中创建一种登录窗口。不幸的是,我无法让它与用户名和密码相匹配。

我有一个基本的.mdb数据库,带有Users表。在此表中,有一个用户名和密码。我希望Delphi检查数据库中的用户名和密码,如果它与编辑框中的用户名和密码匹配,它会转到下一个表单或显示一条消息,否则它什么都不做。当我输入数据库的第一行,用户名和密码值时,我获得成功,但是第二行,没有。我觉得我需要一种方法让它继续前进到第二行值并检查那些等等。目前数据库中也没有任何关系。

这是我的数据访问布局:ADOConnection - > ADOTable - >数据源

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据您的猜测,一种解决方案是按记录移动记录以检查每一个。例如:

function MatchPass(Table: TADOTable; const Name, Pass: string): Boolean;
begin
  Result := False;
  Table.First;
  while not Table.Eof do begin
    if Table.FieldByName('Username').AsString = Name then begin
      Result := Table.FieldByName('Password').AsString = Pass;
      Exit;
    end;
    Table.Next;
  end;
end;

可以像:

一样调用
  if MatchPass(ADOTable1, Edit1.Text, Edit2.Text) then
    ..


另一个解决方案是让ADOTable搜索相应的记录:

function MatchPass(Table: TADOTable; const Name, Pass: string): Boolean;
begin
  Result := Table.Locate('Username;Password', VarArrayOf([Name, Pass]), []);
end;