Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
ecfisa, en la base de datos interbase en la tabla SIS_USUARIOS están en una sola fila el nombre del usuario de (DES_USUARIO) y la contraseña del usuario de (PWD_USUARIO)
en Delphi 7 en DataModule los he puesto separado para el DBLOOKUPCOMBOBOX del usuario he puesto un TIBTABLE enlazado con un TDataSource + TIBQuery enlazado con TDataSource1
y de igual forma con el DBEDIT del Password le he puesto un TIBTABLE enlazado con un TDataSource para que muestre el password de la base de datos
Responder Con Cita
  #2  
Antiguo 12-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.054
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero, exactamente, ¿el problema cuál es?
Responder Con Cita
  #3  
Antiguo 12-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
el problema es de como puedo crear un login enlazando los 3 DBLOOKUPCOMBOBOX (EMPRESA, AGENCIA,USUARIO) + DBEDIT (PASSWORD) con la base de datos,
para que cuando escoja uno de los usuarios de la base de datos y escriba solamente la contraseña que aparece también en la base de datos y si es el password que aparece en la base datos, ingrese correctamente al form 2, y si no es la misma contraseña que salga un aviso también diciendo password incorrecto.
Responder Con Cita
  #4  
Antiguo 13-08-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Con respecto a la verificación del usuario y contraseña te sugiero usar componentes TEdit en lugar de TDBEdit. Y, suponiendo que realizaras la verificación de los datos cuando el usuario presiona el botón aceptar, podrías hacer algo así:
Código Delphi [-]
...
implementation

function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
begin
  // 
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('SELECT DES_USUARIO, PWD_USUARIO');
  qy.SQL.Add('FROM SIS_USUARIOS WHERE DES_USUARIO = :NOMBRE');
  qy.ParamByName('NOMBRE').AsString := nam;
  qy.Open;
  Result := not qy.IsEmpty and (qy.FieldByName('PWD_USUARIO').AsString = pwd);
  qy.Close;
end;

Un ejemplo del uso:
Código Delphi [-]
procedure TForm1.btnAceptarClick(Sender: TObject);
begin
  if not LoginAccepted(Datamodule1.IBQPassword1, EditUsuario.Text, EditPassword.Text) then
    raise Exception.Create('El usuario o la contraseña son inválidos.');
  ...

El punto 12 de la guía de estilo, explicita que sólo se permite una pregunta por hilo, por favor abre otro nuevo con la consulta hacerca de como enlazar los TDBLoockupComboBox con las tablas.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 13-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
Gracias ecfisa

ecfisa gracias por responder a mi pregunta, cuando ingreso el código (function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean; ) se pinta de color rojo y me bota error nose si lo este haciendo bien pero yo lo puse aquí(este es todo el código del form con el nombre (AccesoalSistema)):

Código Delphi [-]
unit AccesoalSistema;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Mask;

type
  TLogin = class(TForm)
    Panel: TPanel;
    Text1: TLabel;
    Text2: TLabel;
    Empresa: TLabel;
    Agencia: TLabel;
    Usuario: TLabel;
    Password: TLabel;
    edtEmpresa: TDBLookupComboBox;
    edtAgencia: TDBLookupComboBox;
    edtUsuario: TDBLookupComboBox;
    Aceptar: TBitBtn;
    Cancelar: TBitBtn;
    edtPassword: TEdit;
    procedure CancelarClick(Sender: TObject);
    procedure AceptarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Login: TLogin;

implementation

uses DataModule01, SistemaPrincipal01;
function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
begin
  //
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('SELECT DES_USUARIO, PWD_USUARIO');
  qy.SQL.Add('FROM SIS_USUARIOS WHERE DES_USUARIO = :NOMBRE');
  qy.ParamByName('NOMBRE').AsString := nam;
  qy.Open;
  Result := not qy.IsEmpty and (qy.FieldByName('PWD_USUARIO').AsString = pwd);
  qy.Close;
end;


{$R *.dfm}

procedure TLogin.CancelarClick(Sender: TObject);
begin
  close;
end;

procedure TLogin.AceptarClick(Sender: TObject);
begin

end;

procedure TForm1.btnAceptarClick(Sender: TObject);
begin
  if not LoginAccepted(Datamodule1.IBQPassword1, EditUsuario.Text, EditPassword.Text) then
    raise Exception.Create('El usuario o la contraseña son inválidos.');
end.

Última edición por ecfisa fecha: 13-08-2017 a las 19:40:58. Razón: Agregar etiquetas [DELPHI][/DELPHI]
Responder Con Cita
  #6  
Antiguo 13-08-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por Djsilver5 Ver Mensaje
ecfisa gracias por responder a mi pregunta, cuando ingreso el código (function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean; ) se pinta de color rojo y me bota error...
Por favor, publica exactamente el mensaje de error que te muestra.


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 13-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
Estos errores me bota en la parte de abajo (code)
[Error] AccesoalSistema.pas(37): Undeclared identifier: 'TIBQuery'
[Error] AccesoalSistema.pas(40): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.Close; )
[Error] AccesoalSistema.pas(41): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.SQL.Clear; )
[Error] AccesoalSistema.pas(42): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.SQL.Add('SELECT DES_USUARIO, PWD_USUARIO'); )
[Error] AccesoalSistema.pas(43): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.SQL.Add('FROM SIS_USUARIOS WHERE DES_USUARIO = :NOMBRE'); )
[Error] AccesoalSistema.pas(44): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.ParamByName('NOMBRE').AsString := nam; )
[Error] AccesoalSistema.pas(45): Missing operator or semicolon (cuando doy clic me pinta de color rojo el qy.Open; )
[Error] AccesoalSistema.pas(46): Missing operator or semicolon (cuando doy clic me pinta de color rojo el Result := not qy.IsEmpty and (qy.FieldByName('PWD_USUARIO').AsString = pwd); )
[Error] AccesoalSistema.pas(46): ')' expected but identifier 'FieldByName' found
[Error] AccesoalSistema.pas(46): 'END' expected but ')' found
[Error] AccesoalSistema.pas(58): ';' expected but '.' found
[Error] AccesoalSistema.pas(60): Undeclared identifier: 'IBQPassword1'
[Error] AccesoalSistema.pas(60): Undeclared identifier: 'EditUsuario'
[Error] AccesoalSistema.pas(60): Not enough actual parameters
[Error] AccesoalSistema.pas(62): ';' expected but '.' found
[Error] AccesoalSistema.pas(64): Declaration expected but end of file found
[Fatal Error] Sistema.dpr(9): Could not compile used unit 'AccesoalSistema.pas'
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Un Login Belen12 Conexión con bases de datos 2 31-05-2016 23:23:25
crear login con adotabla1 Yensis22 Conexión con bases de datos 3 01-04-2008 23:06:22
Login Lento En Interbase Local GIVO Conexión con bases de datos 1 17-03-2004 22:03:42
Suprimir Login InterBase jsc Conexión con bases de datos 4 29-01-2004 02:46:51
InterBase Login? TIKIMORE Firebird e Interbase 6 23-06-2003 17:36:34


La franja horaria es GMT +2. Ahora son las 10:47:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi