Pues hombre aqui estamos enko, yo y todos los foristas para ayudarnos todos, ademas aca entre nos llevo solo como 2 meses programando en delphi con decirte que nunca habia programado nada orientado a objetos y menos en bases de datos.
Bueno a lo que vamos, te comente que uso ACL entonces en mi project uso lo siguiente:
begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
DataModule2.IBDatabase1.Params.Values['USER_NAME'] := 'sysdba';
DataModule2.IBDatabase1.Params.Values['PASSWORD'] := 'masterkey';
DataModule2.IBDatabase1.open;
DataModule2.IBTransaction1.Active := True;
DataModule2.IBDataSet1.Active := True;
Application.CreateForm(TForm3, Form3);
if form3.showmodal = mrok then
begin
form3.Free;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
si te das cuenta siempre me conectoa la base de datos y despues controlo si el user y password para dejarlos entrar. (Ingenioso, jejeje) y asi me evito cualquier problema con la conexion a la base.
y esto es lo que uso primero antes que nada, te explico lo que hace es que valida el usuario y la contraseña del cliente si esta bien devuelve un mrOK que si te fijas bien lo uso en el dpr de arriba. Este codigo es facil hechate una miradita bien a fondo, no voy a estar conectado el fin de semana (me voy de camping) pero el lunes ya estoy aqui.
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
IBQuery1.SQL.Clear;
IBQuery1.Close;
IBQuery1.Sql.Text := 'select * from usuario where user_name =' + Quotedstr (Edit1.text) + 'and user_pass =' + Quotedstr (Edit2.text);
IBQuery1.Open;
IBQuery1.Active:=True;
if IBQuery1.IsEmpty then
raise Exception.Create('Usuario o contraseña inválido')
else begin
user := edit1.Text;
MessageDlg ('SU USER O PASSWORD es correcto', mtWarning,[mbyes],0);
ModalResult := mrOk;
end;
end;
Mi form1 es un menu que es lo que primero disparo cuando se verifica la veracidad de datos.
Espero te ayude es muy bueno para lo que yo lo uso y me imagino que es muy parecido para con firebird