FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Crear login en delphi7 + Interbase
Buenas Tardes ojala me puedan ayudar soy nuevo en esto (principiante) pero estoy intentado hacer un login, la idea es que los DBLOOKUPCOMBOBOX (edtEmpresa, edtAgencia, edtUsuario) estén enlazados con el DBEDIT (edtPassword) todo enlazado con la base de datos de ibexpert que tengo es decir que cuando escribo el password del usuario seleccionado en (edtPassword) busca en la base de datos el mismo password del usuario y entra correctamente al FORM2 que tiene como nombre de (SistemaPrincipal) y cuando no es el password me salga un mensaje de incorrecto, en mi caso en ibexpert tengo las tablas que son EMPRESA, PUNTOS_DE_VENTAS, SIS_USUARIOS.
En la Tabla EMPRESA en la opcion datos se encuentra el DES_EMP (EL NOMBRE DE LA EMPRESA) En la Tabla PUNTOS_DE_VENTAS en la opción datos se encuentra el DES_PTO.(EL NOMBRE DE LA OFICINA) En la Tabla SIS_USUARIOS en la opción datos se encuentra el DES_USUARIO(EL NOMBRE DE USUARIO) y PWD_USUARIO.(LA CONTRASEÑA DEL USUARIO) NOTA: YA TENGO CONECTADO EL INTERBASE CON DELPHI7 USANDO EL DATAMODULE1: TENGO (IBDatabase1, IBTransaction1, IBSToredProc1) conectados. y para el DBLOOKUPCOMBOBOX DE EMPRESA tengo IBTable con el nombre (IBTEmpresas), TDataSource con el nombre (DSEmpresas) TIBQuery con el nombre(IBQEmpresas1) y TDataSource con el nombre(DSEmpresas1). para el DBLOOKUPCOMBOBOX DE AGENCIA tengo IBTable con el nombre (IBTAgencia), TDataSource con el nombre (DSAgencia) TIBQuery con el nombre(IBQAgencia1) y TDataSource con el nombre(DSAgencia1) para el DBLOOKUPCOMBOBOX DE USUARIO tengo IBTable con el nombre (IBTUsuarios), TDataSource con el nombre (DSUsuarios) TIBQuery con el nombre(IBQUsuarios1) y TDataSource con el nombre(DSUsuarios1) para el DBEDIT DE PASSWORD tengo IBTable con el nombre (IBTPassword), TDataSource con el nombre (DSPassword) TIBQuery con el nombre(IBQPassword1) y TDataSource con el nombre(DSPassword1) |
#2
|
||||
|
||||
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Gracias lo leeré y lo tendré en cuenta Amigo.
|
#4
|
||||
|
||||
Hola Djsilver5.
¿ Usas tablas diferentes para usuarios y contraseñas ? Saludos Pd: El mensaje es muy contrastante, lo hace difícil de leer.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
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 |
#6
|
||||
|
||||
Pero, exactamente, ¿el problema cuál es?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
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. |
#8
|
||||
|
||||
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í:
Un ejemplo del uso:
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 .... |
#9
|
|||
|
|||
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)):
Última edición por ecfisa fecha: 13-08-2017 a las 20:40:58. Razón: Agregar etiquetas [DELPHI][/DELPHI] |
#10
|
||||
|
||||
Hola.
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
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' |
#12
|
||||
|
||||
Hola.
Empecemos por el primer error... quita la función del form Login y declarala como un método de DataModule1: Estando la unidad de DataModule1 incluída en el form "Login", llama a la función de este modo:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#13
|
|||
|
|||
cuando le doy en Run me bota este error:
Error in module AccesoalSistema: Declaration of class Tlogin is missing or incorrect |
#14
|
||||
|
||||
Hola.
Revisa si por descuido no modificaste la declaración de TLogin, por ejemplo si originalmente era: modificaste por:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#15
|
|||
|
|||
Lo quite con todo lo que tenia
"type TLogin = class(TForm)" Y copie este: type TDataModule1 = class(TDataModule) IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; IBQPassword: TIBQuery; |
#16
|
||||
|
||||
Hola.
Claro, de allí el error. Básicamente deberías tener algo similar a lo siguiente, TDataModule:
Formulario login:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-08-2017 a las 00:27:57. |
#17
|
|||
|
|||
Hola ecfisa nuevamente al ingresar los 2 códigos en DATAMODULE02 y el Formulario de Login todo conecta correctamente pero cuando intento seleccionar el usuario del DBLOOKUPCOMBOBOX y pongo el password y clic en aceptar me bota el siguiente error:
Cita:
DATAMODULE02
Formulario del Login:
Última edición por ecfisa fecha: 14-08-2017 a las 02:32:10. Razón: Agregar etiquetas [DELPHI][/DELPHI] |
#18
|
||||
|
||||
Hola.
Es que no termino de entender la lógica de tu código, pensé que ingresabas usuario y contraseña mediante los DBEdit, pero aparentemente seleccionas el usuario desde el DBLookupComboBox... Estoy suponiendo que la función LoginAccepted altera la cadena SQL original del IBQuery que alimenta el DBLookupComboBox (si no estoy apreciando equívocamente como funciona). Para evitar esa situación cambia la función anterior por esta que crea una consulta temporal para verificar la contraseña:
Y también tendrás que cambiar los argumentos al llamar al método LoginAccepted, ya que ahora el nombre de usuario se toma desde el DBLookupComboBox. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-08-2017 a las 19:04:23. |
#19
|
|||
|
|||
Buenos días amigo, ayer estaba intentado poner el código tal cual me dijiste y me bota estos error del DataModule.
Código:
[Error] DataModule02.pas(52): Undeclared identifier: 'TDataModule2' [Error] DataModule02.pas(52): 'END' expected but 'CONST' found [Error] DataModule02.pas(52): Undeclared identifier: 'pwd' [Error] DataModule02.pas(52): '=' expected but ';' found [Error] DataModule02.pas(53): Expression expected but 'VAR' found [Error] DataModule02.pas(55): Statements not allowed in interface part [Error] DataModule02.pas(58): Undeclared identifier: 'IBDataBase1' [Error] DataModule02.pas(59): Undeclared identifier: 'IBTransaction1' [Error] DataModule02.pas(66): Undeclared identifier: 'Result' [Error] DataModule02.pas(66): Operator not applicable to this operand type [Error] DataModule02.pas(73): Declaration expected but end of file found [Fatal Error] Sistema.dpr(7): Could not compile used unit 'DataModule02.pas'
|
#20
|
||||
|
||||
Hola.
Uff! hiciste todo un cóctel ahí , en principio revisa si faltan o tienen otro nombre los siguientes componentes: TDataModule, TIBDataBase y TIBTransaction. Luego el esqueleto de tu DataModule debería ser aproximadamente así: Si cotejas con tu código, enseguida notarás que pusiste la implementación del método donde debería ir la declaración. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear Un Login | Belen12 | Conexión con bases de datos | 2 | 01-06-2016 00:23:25 |
crear login con adotabla1 | Yensis22 | Conexión con bases de datos | 3 | 02-04-2008 00:06:22 |
Login Lento En Interbase Local | GIVO | Conexión con bases de datos | 1 | 17-03-2004 23:03:42 |
Suprimir Login InterBase | jsc | Conexión con bases de datos | 4 | 29-01-2004 03:46:51 |
InterBase Login? | TIKIMORE | Firebird e Interbase | 6 | 23-06-2003 18:36:34 |
|