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 14-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
Amigo al corregir el código todo me funciona correctamente me guarda el código y arranca el Run (F9) pero cuando escojo el Usuario en el DBLOOKUPCOMOBOX y escribo el Password de la BaseDatos y doy clic en aceptar me sale el siguiente error.
Cita:
(Project Sistema.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error SQL error code= -204
Table unknown
USUARIO'.Process stopped. Use Step or Run to continue.)
Responder Con Cita
  #2  
Antiguo 14-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

En la siguiente línea del ejemplo:
Código Delphi [-]
qy.SQL.Add('SELECT * FROM USUARIO');
cambia la palabra USUARIO por el nombre que le diste a tu tabla.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
Hola, ahora me bota el siguiente error
Cita:
(Project Sistema.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error SQL error code= -206
Table unknown
USUARIO'.Process stopped. Use Step or Run to continue.)
NOTA: En mi Base de Datos la tabla principal se llama SIS_USUARIOS, dentro de esa tabla en la sección datos esta el DES_USUARIO y PWD_USUARIO debajo de esos 2 campos se encuentra el text del usuario y password.

Código Delphi [-]
unit DataModule02;

interface

uses
  SysUtils, Classes, DB, IBCustomDataSet, IBDatabase, IBQuery, IBTable,
  IBStoredProc;

type
  TDataModule2 = class(TDataModule)
    IBTransaction1: TIBTransaction;
    Procedimientos: TIBStoredProc;
    IBTEmpresas: TIBTable;
    IBQEmpresas1: TIBQuery;
    DSEmpresas: TDataSource;
    DSEmpresas1: TDataSource;
    IBTAgencia: TIBTable;
    IBQAgencia1: TIBQuery;
    DSAgencia: TDataSource;
    DSAgencia1: TDataSource;
    IBTUsuarios: TIBTable;
    DSUsuarios: TDataSource;
    IBQUsuarios1: TIBQuery;
    DSUsuarios1: TDataSource;
    IBDatabase1: TIBDatabase;
    IBTDNI: TIBTable;
    IBTDNIDES_DOC_IDE: TIBStringField;
    IBTDNICOD_DOC_IDE: TIBStringField;
    DSDNI: TDataSource;
    IBQDNI: TIBQuery;
    DTDNI1: TDataSource;
    IBTTipodePersona: TIBTable;
    IBQTipodePersona: TIBQuery;
    DSTipodePersona: TDataSource;
    DSTipodePersona1: TDataSource;
    IBTEstadoCivil: TIBTable;
    IBQEstadoCivil: TIBQuery;
    DSEstadoCivil: TDataSource;
    DSEstadoCivil1: TDataSource;
    IBTZona: TIBTable;
    IBQZona: TIBQuery;
    DSZona: TDataSource;
    DSZona1: TDataSource;
    IBTPassword: TIBTable;
    DSPassword: TDataSource;
    IBQPassword: TIBQuery;
    DSPassword1: TDataSource;
    //
  private
    //
  public
function LoginAccepted(const nam, pwd: string): Boolean;
  end;

var
  DataModule2: TDataModule2;

implementation {$R *.dfm}

// Implementación del método
function TDataModule2.LoginAccepted(const nam, pwd: string): Boolean;
var
  qy: TIBQuery;
begin
  qy := TIBQuery.Create(nil);
  try
    qy.Database := IBDataBase1;
    qy.Transaction := IBTransaction1;
    qy.Close;
    qy.SQL.Clear;
    qy.SQL.Add('SELECT * FROM SIS_USUARIOS');
    qy.SQL.Add('WHERE NOMBRE = :NOMBRE');
    qy.ParamByName('NOMBRE').AsString := nam;
    qy.Open;
    Result := not qy.IsEmpty and (qy.FieldByName('CLAVE').AsString = pwd);
    qy.Close;
  finally
    qy.Free;
  end;
end;

end.
Responder Con Cita
  #4  
Antiguo 14-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
...
NOTA: En mi Base de Datos la tabla principal se llama SIS_USUARIOS, dentro de esa tabla en la sección datos esta el DES_USUARIO y PWD_USUARIO debajo de esos 2 campos se encuentra el text del usuario y password.
...
Entonces la consulta sql en tu caso debería ser:
Código Delphi [-]
...
    qy.SQL.Add('SELECT * FROM SIS_USUARIOS');
    qy.SQL.Add('WHERE DES_USUARIO = :NOMBRE');
    qy.ParamByName('NOMBRE').AsString := nam;
    qy.Open;
    Result := not qy.IsEmpty and (qy.FieldByName('PWD_USUARIO').AsString = pwd);
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 14-08-2017
Djsilver5 Djsilver5 is offline
Miembro
NULL
 
Registrado: ago 2017
Posts: 22
Poder: 0
Djsilver5 Va por buen camino
YA acepto el código pero cuando selecciono el Usuario y escribo la contraseña, despues de dar clic al boton aceptar me sale el siguiente error.

Cita:
Project Sistema.exe raise Exception class Exception with message'El usuario o la contraseña son inválidos'.Process stopped. Use Step or Run to continue.
justo al final en
Código Delphi [-]
procedure TAccesoSistema.AceptarClick(Sender: TObject);
begin
  if not DataModule2.LoginAccepted(edtUsuarios.Text, edtPassword.Text) then
     raise Exception.Create('El usuario o la contraseña son inválidos.');
end;
end.


En el codigo de Form AccesoAlSistema
Código Delphi [-]
unit AccesoAlSistema;

interface

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

type
  TAccesoSistema = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Empresa: TLabel;
    Agencia: TLabel;
    Usuarios: TLabel;
    Password: TLabel;
    Cancelar: TBitBtn;
    edtEmpresa: TDBLookupComboBox;
    edtAgencia: TDBLookupComboBox;
    edtUsuarios: TDBLookupComboBox;
    edtPassword: TEdit;
    Aceptar: TBitBtn;
    procedure CancelarClick(Sender: TObject);
    procedure AceptarClick(Sender: TObject);
    private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AccesoSistema: TAccesoSistema;

implementation  {$R *.dfm}

uses DataModule02;



procedure TAccesoSistema.CancelarClick(Sender: TObject);
begin
close;
end;
procedure TAccesoSistema.AceptarClick(Sender: TObject);
begin
  if not DataModule2.LoginAccepted(edtUsuarios.Text, edtPassword.Text) then
    raise Exception.Create('El usuario o la contraseña son inválidos.');
end;
end.
Responder Con Cita
  #6  
Antiguo 14-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
YA acepto el código pero cuando selecciono el Usuario y escribo la contraseña, despues de dar clic al boton aceptar me sale el siguiente error.
Cita:
Project Sistema.exe raise Exception class Exception with message'El usuario o la contraseña son inválidos'.Process stopped. Use Step or Run to continue.
Correcto, ya funciona como debería.

Ahora, para que no aparezca el mensaje que lanza la línea:
Código Delphi [-]
raise Exception.Create('El usuario o la contraseña son inválidos.');
tanto el nombre como la contraseña deben coincidir con los almacenados en la tabla para ingresar al programa (recuerda que es case sensitive).

Saludos
__________________
Daniel Didriksen

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

Correcto, ya funciona como debería.

Ahora, para que no aparezca el mensaje que lanza la línea:
Código Delphi [-]
raise Exception.Create('El usuario o la contraseña son inválidos.');
tanto el nombre como la contraseña deben coincidir con los almacenados en la tabla para ingresar al programa (recuerda que es case sensitive).

Saludos
La contraseña que puse coincide con el de la base de datos y el usuario también pero aun asi me aparece el mensaje
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 14:22:18.


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