先设ODBC,再按如下使用:
function  TTCSBADataModule.Connect: Boolean;
begin
  { Connects the user to the database. When dbSales is set to True, its OnLogon
    event handler will be invoked which will invoke our customer login dialog
    defined in LoginFrm.pas. }
  try
    dbTCSBA.Connected  := True;  //触发ONLOGIN事件
    Result := True;  except
    if blLoginFlag then
    //MessageDlg('Invalid Password or login information, cannot login.', mtError, [mbok], 0);
      MessageDlg('错误的口令或者登录信息,无法登录.', mtError, [mbok], 0);
    dbTCSBA.Connected := False;
    Result := False;
  end;
end;
procedure TTCSBADataModule.dbTCSBALogin(Database: TDatabase;
  LoginParams: TStrings);
begin
  blLoginFlag:=GetLoginParams(LoginParams);
end;//login windowsunit LoginFrm;interfaceuses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls;type
  TLoginForm = class(TForm)
    lblEnterPassword: TLabel;
    lblEnterName: TLabel;
    edtName: TEdit;
    edtPassword: TEdit;
    btnOK: TButton;
    btnCancel: TButton;
  public
  end;function GetLoginParams(ALoginParams: TStrings): Boolean;implementation{$R *.DFM}function GetLoginParams(ALoginParams: TStrings): Boolean;
var
  LoginForm: TLoginForm;
begin
  Result := False;
  LoginForm := TLoginForm.Create(Application);
  try
    if LoginForm.ShowModal = mrOk then
    begin
      ALoginParams.Values['USER NAME'] := LoginForm.edtName.Text;
      ALoginParams.Values['PASSWORD'] := LoginForm.edtPassWord.Text;
      Result := True;
    end;
  finally
    LoginForm.Free;
  end;
end;end.