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-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Cool Duda en Base de Datos

Hola....

Tengo Una Duda.

TEngo un Form que tiene algunos dbedit (nombre, domicilio, ciudad, atn y rfc), tengo la respectiva tabla que los conecta y un edit aparta que lo tengo denominado "Clave", ahora bien, lo que quiero hacer es que el usuario pueda teclear un numero de registro de la tabla por ejemplo:

digamos que tengo estos clientes dados de alta en la tabla

Nombre____|Ciudad_|______Domicilio______|___AT'N_____|____RFC
Juan Perez | Colima | Fraccionamiento verde| Julio Miranda | JPRF2345678
Lola Días | DF | Calle naranjo | Pablo Días | LDRT456435

Ahora bien digamos que Juan Perez es mi Registro 1 y Lola mi registro 2...

Entonces quiero que al momento de ingresar en mi Edit "Clave" alguno de los registros por ejemplo "2" que automaticamente se ponga la info necesaria en cada dbedit.

Mi dudas... ¿Tengo que agregar un campo para la clave o registro para los clientes? y si es así, existe alguna forma de que este numero/clave se asigne automaticamente al momento de dar de alta un cliente

¿Como hago para que al teclear numero de clave en el edit, se pase la info a los dbeditcorrespondiente?


Muchas Gracias por su tiempo.
Responder Con Cita
  #2  
Antiguo 05-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Segun entiendo... tu problema es en realidad buscar un determinado registro y posicionar el registro buscado y selecionarlo;
Si es así entonces pon este código en el evento OnChange del Edit donde introduces el numero a posicionar:
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var Nro_de_Fila:Integer;
begin
{Estoy usando la funcion TryStrToInt por que puede ser que en tu edit pongas algo que no sea numero}
 if TryStrToInt(Edit1.Text,Nro_de_Fila) then //si tiene exito la conversion
   DataSet.RecNo:=Nro_de_Fila;//ubico el dataset (Query o Table) en el registro deseado
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 05-02-2010 a las 21:44:21.
Responder Con Cita
  #3  
Antiguo 06-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Muchas Gracias por la ayuda rgstuamigo, Fijate que si quiero encontrar un determinado registro, pero ahora el problema es que quiero que una vez encontrado el registro los datos de ese registro como (nombre, domicilio, ciudad) me agregue automaticamente cada uno de los campos en cada uno de los dbedit(dbedit1,dbedit2,dbedit3) que tengo en la form.

Tengo estos datos de campos NOMBRE, DOMICILO, CIUDAD etc, etc.

Ahora bien en mi Form tengo un Edit (edit6) que es donde el usuario podra poner la clave de cliente o registro de cliente, Entonces quiero que al momento de poner un numero, que seria un numero de registro, busque el numero de registro y que cada info de cada campo (nombre, domicilio, ciudad, etc) se ponga en los dbedit(dbedit1, dbedit2, dbedit3) correspondientes.

Muchas Grx por la atención.
Responder Con Cita
  #4  
Antiguo 06-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cada DBEdit debe tener asignada la propiedad DataField con el nombre del campo que le corresponde según el DataSet que tenga asignado (si es que tiene uno). No necesitas hacer más que eso.
Responder Con Cita
  #5  
Antiguo 06-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Cita:
Empezado por DriverOp Ver Mensaje
Cada DBEdit debe tener asignada la propiedad DataField con el nombre del campo que le corresponde según el DataSet que tenga asignado (si es que tiene uno). No necesitas hacer más que eso.
Gracias DriverOp por tu ayuda

fijate que esa forma si la conozco, pero lo que quiero es que la info de los registros sean puestos en los dbedit pero de acuerdo al numero de registro que solicite mediante el edit que tengo asignado para buscar registro.


por cierto hasta cuando o que tengo que hacer para poder poner imagenes y links en mis post? eso lo facilitaria mucho.
Responder Con Cita
  #6  
Antiguo 06-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Franksxs Ver Mensaje
fijate que esa forma si la conozco, pero lo que quiero es que la info de los registros sean puestos en los dbedit pero de acuerdo al numero de registro que solicite mediante el edit que tengo asignado para buscar registro.
Quizá no fui suficientemente claro. Esa funcionalidad es propia de los TDBEdits. Estableciendo las propiedades correctamente, cada vez que cambia el registro activo en el TDataSet, los TDBEdits toman el valor del campo que les corresponde. No tienes que escribir ningún código para que esto suceda.

De hecho, ese es el mismísimo propósito de la existencia de este tipo de componentes.

Saludos.
Responder Con Cita
  #7  
Antiguo 06-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Smile

Cita:
Empezado por DriverOp Ver Mensaje
Quizá no fui suficientemente claro. Esa funcionalidad es propia de los TDBEdits. Estableciendo las propiedades correctamente, cada vez que cambia el registro activo en el TDataSet, los TDBEdits toman el valor del campo que les corresponde. No tienes que escribir ningún código para que esto suceda.

De hecho, ese es el mismísimo propósito de la existencia de este tipo de componentes.

Saludos.

Gracias de nuevo DriverOp.

Entonces es correcto si utilizo el codigo que rgstuamigo me proporcionó?
Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
var Nro_de_Fila:Integer;
begin
{Estoy usando la funcion TryStrToInt por que puede ser que en tu edit pongas algo que no sea numero}
 if TryStrToInt(Edit1.Text,Nro_de_Fila) then //si tiene exito la conversion
   table1.RecNo:=Nro_de_Fila;//ubico el dataset (Query o Table) en el registro deseado
end;


Porque mira he utilizado el codigo, ya les asigne los datafield con el campo a los dbedit y aún así no me va, los dbedit solo me muestra los datos que estan en el primer registro, aún cuando quiero que me muestre los datos del registro 2.

Gracias por tu tiempo. Saludos
Responder Con Cita
  #8  
Antiguo 06-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Franksxs Ver Mensaje
Porque mira he utilizado el codigo, ya les asigne los datafield con el campo a los dbedit y aún así no me va, los dbedit solo me muestra los datos que estan en el primer registro, aún cuando quiero que me muestre los datos del registro 2.
Pues algo estás haciendo mal, evidentemente.

Asumo que tienes lo siguiente:
Un TTable que apunta a una tabla (en tu caso se llama Table1).
Un TDataSource que en su propiedad DataSet apunta al TTable.
Y varios TDBEdits cuya propiedad DataSource apunta al TDataSource y la propiedad DataField al nombre de campo que debe mostrar/editar ese TDBEdit.

Todo esto usando el BDE por supuesto.

Entonces cada vez que asignes un valor a Table1.RecNo, estás cambiando el registro activo de la tabla y por lo tanto el valor del campo apuntado por los TDBEdits también cambiará.

Acabo de probar el código de rgstuamigo y funciona perfectamente.
Responder Con Cita
  #9  
Antiguo 06-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Cita:
Empezado por DriverOp Ver Mensaje
Pues algo estás haciendo mal, evidentemente.

Asumo que tienes lo siguiente:
Un TTable que apunta a una tabla (en tu caso se llama Table1).
Un TDataSource que en su propiedad DataSet apunta al TTable.
Y varios TDBEdits cuya propiedad DataSource apunta al TDataSource y la propiedad DataField al nombre de campo que debe mostrar/editar ese TDBEdit.

Todo esto usando el BDE por supuesto.

Entonces cada vez que asignes un valor a Table1.RecNo, estás cambiando el registro activo de la tabla y por lo tanto el valor del campo apuntado por los TDBEdits también cambiará.

Acabo de probar el código de rgstuamigo y funciona perfectamente.



Efectivamente Estoy haciendo algo mal y no sé que es, fijate que cambie mi tablename por uno de los que viene por defecto en delphi y con ese si me funciona, tienes alguna idea porque con esa si funciona y con la mia, no ?


Muchas Gracias, disculpen tanto las molestia su ayuda meha servido bastante
Responder Con Cita
  #10  
Antiguo 06-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Franksxs Ver Mensaje
Efectivamente Estoy haciendo algo mal y no sé que es, fijate que cambie mi tablename por uno de los que viene por defecto en delphi y con ese si me funciona, tienes alguna idea porque con esa si funciona y con la mia, no ?


Muchas Gracias, disculpen tanto las molestia su ayuda meha servido bastante
Lo ignoro. Quizá tenga que ver el tipo de tabla que estás usando, no lo sé, no tengo mucha experiencia con base de datos en Delphi.
Responder Con Cita
  #11  
Antiguo 07-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Cita:
Empezado por DriverOp Ver Mensaje
Lo ignoro. Quizá tenga que ver el tipo de tabla que estás usando, no lo sé, no tengo mucha experiencia con base de datos en Delphi.

Es lo mismo que estaba sospechando, donde aprendí nos enseñaron con dbase III+, con que tipo de tabla trabajas tu ?

Saludos
Responder Con Cita
  #12  
Antiguo 08-02-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Franksxs Ver Mensaje
Es lo mismo que estaba sospechando, donde aprendí nos enseñaron con dbase III+, con que tipo de tabla trabajas tu ?

Saludos
Paradox 7. Son las "estandar" de Delphi 6.0 (sé que es viejo pero es el único que tengo )
Responder Con Cita
  #13  
Antiguo 08-02-2010
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
Cita:
Empezado por DriverOp Ver Mensaje
Paradox 7. Son las "estandar" de Delphi 6.0 (sé que es viejo pero es el único que tengo )

muy bien, por ultimo quiere darle las gracias por todo su apoyo
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
Duda sobre conectarse a una base de datos gslcene Conexión con bases de datos 10 26-03-2008 01:08:36
duda sobre base de datos oscarpinog Tablas planas 20 13-08-2007 19:46:33
duda agreando usuario a la base de datos alachaise PHP 1 26-11-2004 22:58:48
Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) frankmch Conexión con bases de datos 2 08-09-2003 19:44:52
Duda sobre q base de dato debo usar Michel Firebird e Interbase 11 07-07-2003 16:27:45


La franja horaria es GMT +2. Ahora son las 04:51:16.


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