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 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Captura de Datos de Ado

Resulta que estoy desarrollando un proyecto en Delphi 7 que usa Ado Connection para Access, pero el programa solo lee la primera linea de cada tabla, o sea, solo lee la primera linea que he guardado de cada tabla. No se si el inconveniente esta en que en la parte de SQL puse: Select * from Usuario´
Teniendo en cuenta que Usuario es el nombre de una tabla en particular.

Les agradecere enormemente que me ayuden con esto.
Responder Con Cita
  #2  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Supongo que los datos te los muestra en DBEdit.
Si no pones un DBNaviagtor y lo enlazas al Datasource dará la impresión de que solo muestra el primer registro, aunque estén todos ahí.
Para asegurarte coloca un DBGrid y lo enlazas al Datasource, deberian verse todos los registros.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Eso esta bien pero....

Una de las ventanas es una entrada de usuario. Cuando la pongo a prueba me doy cuenta de que dicha ventana solo acepta los datos del primer usuario (en este caso: Juan en el nombre, y 20040708 en la contraseña) que guardé en la tabla a la que esta enlazada, los demas datos no los lee.

¿Si cambio los Edit por DBEdit, podria tener el resultado que quiero, o sea, que lea los demas datos de manera que funcione como una entrada de usuario correcta?
Responder Con Cita
  #4  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Me explicare mejor....

Tengo una ventana que sirve para que los usuarios se identifiquen. Contiene un Edit para el nombre, otro Edit para la contraseña, un boton de Aceptar, y un boton de Cancelar.

Entonces he conectado esta ventana a una tabla de Access que tiene varios nombres de usuario y contraseñas diversas, sucede que el unico usuario que acepta la ventana es el primero que guarde previamente en la tabla, los demas no los lee.

Espero haberme explicado, de lo contrario haganmelo saber, por favor.
Responder Con Cita
  #6  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ahora si te entiendo.
Es dificil saber la razon sin ver el codigo que tienes.
Opcion 1- pones en un zip el codigo (sin el exe) y la base de datos aqui para revisarlo.
Opcion 2- Muestra el codigo que tienes (copialo y pegalo).
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Lo hare mañana....

Mañana traere el codigo porque aqui no tengo disponible el codigo.

Y lo hare en las dos opciones.

Gracias de antemano.
Responder Con Cita
  #8  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Mira este código, te va a servir de ejemplo.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 05-03-2010 a las 16:38:01.
Responder Con Cita
  #9  
Antiguo 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Lo voy a chequiar...

Porque ahora estoy en un cyber y mi compu esta en la casa. Pero para no volver a tener este contratiempo, mañana me conectare desde mi compu.

Revisare ese archivo que me mandaste, a ver si por fin entiendo esto.

Una ultima cosa por hoy, ¿tienes por ahi algun libro de Delphi que sea entendible para los humanos? No como algunos que solo los expertos lo entienden (vaya barrabasada esa de hacer un libro para expertos).
Responder Con Cita
  #10  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Un buen libro
Club Delphi
Saludos
PD: Que conste que no hago publicidad
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 05-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Entiendo....

Por lo que he visto, aqui son muy solidarios. Esta es una buena comunidad, que vale la pena visitar.

He leido varios manuales y libros de Delphi, pero la mayoria no son muy detallistas, y me quedo con muchas lagunas en la cabeza.

Cuando llegue a casa chequeare lo que me mandaste y mañana te dare mi impresion de lo que vea.

Gracias mi pana.
Responder Con Cita
  #12  
Antiguo 05-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No esperes mucho de mi, soy un novato.
Aquí hay gente que sabe mucho, ya te ayudaran con tus dudas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 05-03-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Fiebru Ver Mensaje
¿tienes por ahi algun libro de Delphi que sea entendible para los humanos?
Prueba con la "Cara oculta de Deplhi" que puedes encontrar en el FTP del Club (si revisas este directorio hay alguno más que te puede servir).

También puedes revisar este pequeño curso Online, que es bastante básico y muy bien explicado con imágenes.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 06-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Este es el codigo fuente de la ventana de entrada de usuario:

Código Delphi [-]
unit EntradaUsuario;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, DB, DBTables, ADODB;

type
  TFrmEntradaUsuario = class(TForm)
    BtnAceptar: TButton;
    BtnCancelar: TButton;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    ADOQuery1NombredeUsuario: TWideStringField;
    ADOQuery1Contrasena: TWideStringField;
    Label1: TLabel;
    Label2: TLabel;
    EUsuario: TEdit;
    EContrasena: TEdit;
    ADOConnection1: TADOConnection;
    procedure BtnCancelarClick(Sender: TObject);
    procedure BtnAceptarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmEntradaUsuario: TFrmEntradaUsuario;

implementation

uses Menu;

{$R *.dfm}

procedure TFrmEntradaUsuario.BtnCancelarClick(Sender: TObject);
begin
FrmEntradaUsuario.close
end;

procedure TFrmEntradaUsuario.BtnAceptarClick(Sender: TObject);
begin
if (ADOQuery1NombredeUsuario.Text = EUsuario.Text)
and (ADOQuery1Contrasena.Text = EContrasena.Text)
then FrmMenu.Show;
if (ADOQuery1NombredeUsuario.Text = EUsuario.Text)
and (ADOQuery1Contrasena.Text = EContrasena.Text)
then FrmEntradaUsuario.Hide
else Application.Messagebox('Clave Incorrecta', 'Acceso Denegado', MB_OK);
end;
end.

Última edición por rgstuamigo fecha: 06-03-2010 a las 13:24:40. Razón: Estética en el código
Responder Con Cita
  #15  
Antiguo 06-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Sobre lo dicho por Neftali....

Tomare en cuenta esa informacion.
Responder Con Cita
  #16  
Antiguo 06-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El codigo dice:
Si el query es igual que el edit entonces abre el form.
Muy bien hasta ahi, PERO.
Cual usuario?, Cual clave? el query tiene un sql que dice, selecciona todo y lo hace, por supuesto desde el principio.
Lo logico es que SOLO mostrara o encontrara el primero ya que ahi es donde empieza.
Si viste el codigo que puse veras que existe un parametro dentro del query, este dice:
Si el parametro es igual al usuario entonces abre el from.
Me imagino que veras la diferencia.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #17  
Antiguo 06-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Buen punto....

El archivo que me mandaste no se como abrirlo porque no dice que tipo de archivo es.

Entonces, ahi es donde tengo el problema, en los parametros, que no se como especificar que es un recorrido que debe hacer, en vez de agarrar el primer dato que encuentre.
Responder Con Cita
  #18  
Antiguo 06-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El query:
Código Delphi [-]
SELECT CodUsuario, Clave  FROM Usuarios WHERE
CodUsuario = :nom
Dice: Selecciona el codigo del usuario y la clave de la tabla usuarios.
Donde el codigo del usuario sea igual al parametro nom

El codigo del boton aceptar:
ADLoguin es el nombre del query (no te confundas)
Código Delphi [-]
procedure TFLogin.BtnOkClick(Sender: TObject);
begin
    LoginOK := False;
   ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
   ADLogin.Active:= True;
   EUsuario.Text:= ADLogin.Fields[1].AsString;
   If ADLogin.RecordCount < 1 then
    Begin
       Cuenta := Cuenta + 1;
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
       EUsuario.Text := '';
       EClave.Text := '';
       ADLogin.Active := False;
       If Cuenta = 3 then Close;
    end
   else
       If ADLoginClave.AsString = EClave.Text then
        Begin
           LoginOk := True;
           ADLogin.Active := False;
           FClientes:=TFClientes.Create(self);
           try
           FLogin.Visible:= False;
           FClientes.ShowModal;
           finally
           FClientes.Free;
           end;
           Close;
        end
     else
         Begin
           Cuenta := Cuenta + 1;
           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
           EClave.Text := '';
           ADLogin.Active := False;
           If Cuenta = 3 then Close;
         end;

end;
El archivo que coloque es un ZIP, dentro esta el ejemplo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #19  
Antiguo 06-03-2010
Fiebru Fiebru is offline
Miembro
 
Registrado: dic 2009
Posts: 16
Poder: 0
Fiebru Va por buen camino
Se que es un ZIP...

Pero cuando lo descomprimi solo hay un archivo que no se que hacer con el.

El codigo que me pasaste lo voy a chequiar detenidamente a ver si me da resultado.

Gracias de antemano.
Responder Con Cita
  #20  
Antiguo 06-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Talking

Hola
Paso a paso:
Código Delphi [-]
procedure TFLogin.BtnOkClick(Sender: TObject); // el procedimiento del boton aceptar
begin
  // olvídate de esto por ahora
  //  LoginOK := False; 

   // el query. parametro. parametro por nombre (nom) = edit . text. 
   ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
  // activa el query
   ADLogin.Active:= True;
  // edit .text = a query. archivo 1 . como string.
   EUsuario.Text:= ADLogin.Fields[1].AsString;
  // si la cuenta es mayor que uno entonces
    If ADLogin.RecordCount < 1 then
    Begin
   // olviada esto
   //    Cuenta := Cuenta + 1;
   // muestra un mensaje
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
   // retorna a vacío el edit del usuario y clave
       EUsuario.Text := '';
       EClave.Text := '';
    // desactiva el query
       ADLogin.Active := False;
    // olvida esto
    //   If Cuenta = 3 then Close;
    end
   else
       // si query clave como string es igual al edit de la clave entonces
       If ADLoginClave.AsString = EClave.Text then
        Begin
        // olvida esto
        //   LoginOk := True;
        // activa el query
           ADLogin.Active := False;
        // Crea el form en este caso se llama Fclientes
           FClientes:=TFClientes.Create(self);
           try
          // oculta el form del loguin
           FLogin.Visible:= False;
           // abre el form en este caso se llama Fclientes
           FClientes.ShowModal;
           finally
           // cuando termine lo libera
           FClientes.Free;
           end;
           Close;
        end
     else
         Begin
          // esta parte es para darle al usuario solo tres intentos para encontrar la clave
         //  Cuenta := Cuenta + 1;
         //  MessageDlg('Clave Inválida',mtError, [mbOK], 0);
         //  EClave.Text := '';
         //  ADLogin.Active := False;
         //  If Cuenta = 3 then Close;
        // end;

end;
Ni la cara oculta de delphi
Saludos
__________________
Siempre Novato
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
captura de datos vlady3086 OOP 3 03-03-2009 17:08:52
enlazar datos con ventana de captura zidfrid API de Windows 3 28-04-2008 20:36:47
captura de errores de bases de datos en delphi 7 godie12345 Varios 5 11-12-2007 17:51:55
Forzar captura datos en un DBEdit Goyo OOP 4 20-09-2006 17:07:58
Captura Datos Com1 EdyBay Varios 2 04-08-2005 14:49:05


La franja horaria es GMT +2. Ahora son las 13:52:22.


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