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 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
  #2  
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
  #3  
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
  #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.

Empecemos por el primer error... quita la función del form Login y declarala como un método de DataModule1:
Código Delphi [-]
...
uses ..., IBQuery;
...
type
  TDataModule1 = class(TDataModule)
    IBDatabase1: TIBDatabase;
    IBTransaction1: TIBTransaction;
    IBQPassword: TIBQuery;
    //...
  private
    //...
  public
    function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
  end;

var
  DataModule1: TDataModule1;

implementation  

function TDataModule1.LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
begin
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('SELECT * FROM USUARIO');
  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;
end;
...
Estando la unidad de DataModule1 incluída en el form "Login", llama a la función de este modo:
Código Delphi [-]
procedure TLogin.btnAceptarClick(Sender: TObject);
begin
  if not DataModule1.LoginAccepted(DataModule1.IBQPassword, EditUsuario.Text, EditPassword.Text) then
    raise Exception.Create('El usuario o la contraseña son inválidos.');
end;

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
cuando le doy en Run me bota este error:
Error in module AccesoalSistema: Declaration of class Tlogin is missing or incorrect
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.

Revisa si por descuido no modificaste la declaración de TLogin, por ejemplo si originalmente era:
Código Delphi [-]
type
  TLogin = class(TForm)
modificaste por:
Código Delphi [-]
type
  TLogin = class()
  ...
// o por:
type
  TLogin = class(TObject)
  ...
// o por:
type
  TLogin = class
   ...
// etc,...

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
Lo quite con todo lo que tenia
"type
TLogin = class(TForm)"
Y copie este:
type
TDataModule1 = class(TDataModule)
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBQPassword: TIBQuery;
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 19:20:01.


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