3

Delphi で一種のログイン ウィンドウを作成したいと思います。残念ながら、ユーザー名とパスワードを一致させることはできません。

ユーザーテーブルを持つ基本的な .mdb データベースがあります。この表には、ユーザー名とパスワードがあります。Delphi にデータベース内のユーザー名とパスワードをチェックしてもらいたいのですが、それが編集ボックスのユーザー名とパスワードと一致する場合は、次のフォームに移動するか、メッセージを表示します。それ以外の場合は何もしません。データベースの最初の行であるユーザー名とパスワードの値を入力すると、成功しますが、2 番目の行では何も入力されません。2行目の値に移動してそれらをチェックする方法が必要だと感じています。また、現在、データベースには関係がありません。

これはデータ アクセスの私のレイアウトです: ADOConnection -> ADOTable -> DataSource

前もって感謝します!

4

1 に答える 1

2

ご想像のとおり、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;
于 2012-07-13T23:47:28.303 に答える