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 09-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
asignar los registros de una consulta a un bdlookupcombobox

compañeros necesito la ayuda de todo aquel que me diga la forma de asignarle los registros que devuelve una consulta hecha a una Base de datos a un dblookupcombobox
lo he hecho asi:
dblookupcombobox.assign(tbquery)
pero no me funciona agradeceria mucho si alguien me ayuda en esto uso delphi7
espero por algunos de ustedes.
Responder Con Cita
  #2  
Antiguo 09-02-2009
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
A la propiedad ListSource del dblookupcombobox, debes asignarle el DataSource que este asignado al TDataSet que trae dicha consulta...

Luego en la propiedad ListField indicarle los campos que deseas visualizar, separados por punto y coma.

En ListFieldIndex, indicar cual es el campo que deseas que se visualice una vez el usuario, seleccione una opción.

Y en KeyField asignar el campo "llave" de esa consulta (Este sera el campo que contiene el valor que se guardara, en la propiedad KeyValue y por lo tanto (Si es el caso) en el DataSet que esta "asignado" al DataSource que a su vez, esta "asignado" a la propiedad DataSource de tu dblookupcombobox).

Una ultima cosita... si asignas un valor a la propiedad DataSource de tu dblookupcombobox, deberás indicarle a que campo guardar el valor seleccionado, por medio de la propiedad DataField...

P.D: Que vaina tan larga esta... .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 09-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
respuesta

jhonny gracias por la ayuda en realidad eso lo hice ya, la idea es seleccionar desde una consulta los registros que quiero debido a que tengo una tabla que se llama trabajadores, los cuales pertenecen a una unidad por ejemplo
jhonny meson
yorgelis unidad1
jhonny2 unidad1
ya el nombre de la unidad se repite, por eso tengo que hacer un select distinct para mostrar dentro del bdlookupcombobox los nombre de las unidades pero sin repetirse, para despues que seleccione en este primer bdlookupcombobox la unidad en otro se me carguen los trabajadores de esa unidad entiendes como es la cosa??
que sucede cuando utilizo el query para hacer esto me da error no se como asignarle lo que el me devuelve para estos dblookupcombobox entiendes??
si conoces como hacer esto te agrdeceria de nuevo la ayuda.
Responder Con Cita
  #4  
Antiguo 13-02-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Wink

Debes de Asignar los Parametros de retorno de tu Query.. al DbLookupcombobox..
Deves retornar el Id y la lista Por ejemplo en nombre de algun trabajador..
el Id Para que lo guardes por dento del programa deacuerdo al nombre seleccionado..

P/e:

si tu consulta es

Select Id,Nombre From Trabajador Where id = Parametroentrada

entonces Retornaras Id y Nombre Osea 2 Parametros y se lo asignas asi..

DbLookupcombobox1.Datasource.Dataset := Query.Dataset;
Dblookupcombobox1.keyField := Query.Dataset.fiedbyName("Id");
Dblookupcombobox1.ListField := Query.Dataset.fiedbyName("Nombre");

Espero te sirva ya que soy estudiante..
Responder Con Cita
  #5  
Antiguo 14-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
gracias

gracias por tu respuesta intentare esa solucion a ver si las cosas funcionana espero que si no es asi me sigan ayudando con algunas dudas.
gracias por todo.
Responder Con Cita
  #6  
Antiguo 17-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
nada de nada

joelphi lo siento pero probe las variantes que me diste y no me funcionan lo primero es cuando intento mediante codigo lo siguiente
DbLookupcombobox1.Datasource.Dataset := Query.Dataset;
Dblookupcombobox1.keyField := Query.Dataset.fiedbyName("Id");
Dblookupcombobox1.ListField := Query.Dataset.fiedbyName("Nombre");
primero mi query no tiene las propiedades dataset por tanto no puedo acceder a la de fieldbyname a no ser de esta manera
unidad.DataSource.DataSet:=Query1.DataSource.DataSet;
unidad es el name de mi dblookupcombobox ahora mediante esta manera el project explota y me dice que no hay memoria suficiente para la operacion en realidad no se que hacer estoy muy apurado con esta cosa debido a esto no he podido avanzar en el proyecto que estoy haciendo se que esas cosas son sencillas pero no me salen falta de trabajar en esto si alguien puede ayudarme de nuevo se los agradeceria mucho recuerden que estoy trabajando en delphi 7 a lo mejor tiene propiedades distintas en sus componentes lo cual debe ser muy seguro gracias a todos.
Responder Con Cita
  #7  
Antiguo 17-02-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Es algo Facil..

En efecto mi Buen.. Asi se accesa a la propiedad Dataset, y asi la puedes asignar como lo muestras en el ejemplo que me pones..
..

Tengo un Ejemplo para ti esta hecho en Delphi 6.. pero si corre en el 7
hice lo siguiente..
Utilice Componentes ADO..
- Conecte un AdoConnecction a un server SQL 7.0 a la BD Master..

- puse un AdoQuey y lo conecte con el AdoConnection con la propiedad "Connection"

-puse un DataSource y lo conecte con el AdoQuey con su propiedad DataSet...

- Luego puse un DBLookupCombobox y no le asigne nada.. no le movi nada..

- despues puse un boton en donde le puse este pequeño codigo

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Id,Name From Sysobjects');
ADOQuery1.Prepared;
ADOQuery1.Open;
DBLookupComboBox1.ListSource:= DataSource2;
DBLookupComboBox1.KeyField := 'Id';
DBLookupComboBox1.ListField := 'Name';

Recuerda que esta conectado a la Base de datos master la cual tiene una tabla que se llama SysObjects y tiene Atributos como Id y Name(que esto es lo que retorna la consulta)..

Espero y te Sirva si no.. tengo el Ejemplo Guardado ..

Saludos¡¡
Responder Con Cita
  #8  
Antiguo 17-02-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Es algo Facil..

En efecto mi Buen.. Asi se accesa a la propiedad Dataset, y asi la puedes asignar como lo muestras en el ejemplo que me pones..
..

Tengo un Ejemplo para ti esta hecho en Delphi 6.. pero si corre en el 7
hice lo siguiente..
Utilice Componentes ADO..
- Conecte un AdoConnecction a un server SQL 7.0 a la BD Master..

- puse un AdoQuey y lo conecte con el AdoConnection con la propiedad "Connection"

-puse un DataSource y lo conecte con el AdoQuey con su propiedad DataSet...

- Luego puse un DBLookupCombobox y no le asigne nada.. no le movi nada..

- despues puse un boton en donde le puse este pequeño codigo

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Id,Name From Sysobjects');
ADOQuery1.Prepared;
ADOQuery1.Open;
DBLookupComboBox1.ListSource:= DataSource2;
DBLookupComboBox1.KeyField := 'Id';
DBLookupComboBox1.ListField := 'Name';

Recuerda que esta conectado a la Base de datos master la cual tiene una tabla que se llama SysObjects y tiene Atributos como Id y Name(que esto es lo que retorna la consulta)..

Espero y te Sirva si no.. tengo el Ejemplo Guardado ..

Saludos¡¡
Responder Con Cita
  #9  
Antiguo 17-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
Unhappy de nuevo

joelphi mira te explicare bien mi problema para que me entiendas mejor
resulta ser que quiero realizar una aplicacion sencilla mediante la cual una unidad de mi empresa realice un reporte de algunos parametro medibles dentro de un parte diario que se entrega a los jefes de la misma la idea esencial es la siguiente
cuando se ejecute la aplicacion la se mostrara un datatimerpicker en el que el user escojera la fecha en la que elabora el parte de ahi en un dblookupcombobox escojera la unidad a la que pertenece a continuacion en otro dblookupcombobox escojera el nombre del user que elabora el parte esto es teniendo en cuante que ese user pertenece a esa unidad por lo tanto en el primer dblookupcombobox cuando escoja la unidad a la que pertenece le apareceran en el segundo dblookupcombobox los nombres de los trabajadores de esa unidad para ahorar tiempo ahora
las tablas que contienen esta informacion estan hecha con la herramienta de delphi database desktop por qe esto por que la misma te crea ficheros de paradox pequeños que facilmente saldria de la maquina cliente a la servidora ahora cuando el user haga esto sencillamente llenara unos datos como incidencias del dia, consumo electrico, propina entregada cosas asi para que cuando llene esto la informacion se guarde en una tabla reporte para que mediante un boton el user de enviar y esa tabla salga desde el cliente hasta una direccion de correo en el server donde se le dara el tratamiento adecuado entiendes lo que quiero hacer?? si me puedes ayuda en esto escribeme a mi correo personal si lo deseas asi no ponemos mas en contacto y quizar te pueda enviar parte de lo que he hecho si este reporte lo pudiera enviar como una hoja de excell seria lo ideal pero ya ves estoy en el inicio de esto asi que espero me ayudes y gracias de nuevo cualquier idea que se te ocurra no dudes es escribir para aca.
Responder Con Cita
  #10  
Antiguo 18-02-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Arrow Ok..

Pues mira.. Creo que lo quieres desarrollar si es algo mas o menos grande.. yo actualmente estoy un poco ocupado.. Ademas no soy tan experto en delphi (Recuerda que soy estudiante,Programador jr..) Pero si deceas que te ayude en lo que pueda pues nos aventamos va??...

Ademas quisiera saber si estas desarrollando Orientado a Objetos 100%.. o Utilizas Componentes desde la interfaz Para las Conexiones con la DB..seria un buen punto..

y sobre el proyecto que estas realizando, me parece que ya he visto algo parecido...

Espero el correo por este medio...

Saludos¡¡

Última edición por joelphi fecha: 18-02-2009 a las 06:56:54.
Responder Con Cita
  #11  
Antiguo 18-02-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: ene 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
asi si

mira me parece que nos podemos poner de acuerdo yo soy ingeniero en inf lo que hace muchisimo tiempo que no programo en delphi y es la primera vez que uso el BDE, para este tipo de aplicaciones, no uso objetos practicamente debido a que cuando creas una aplicacion usando el asistente del BDE el mismo incluye dentro de la aplicacion los componentes necesarios para manejar los datos de su BD casi siempre son edits y labels a no ser que crees una forma principal ahora lo que quiero son ideas de como realizar el trabajo mas sencillo por que lo que tengo pensado hasta ahora lo conoces dime si puedes ayudarme en eso?
si pudieras echarle un vistazo a esto seria de gran ayuda por que por aca no tengo mucho tiempo para estudiar con todo el trabajo bueno futuro ingeniero espero me ayudes y gracias.
Responder Con Cita
  #12  
Antiguo 18-02-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Smile Ok

Bueno.. Siendo asi mi correo es velocirraptor79@hotmail.com y la idea que tengo sobre tu aplicacion es buena y si no es buena la hacemos buena...

A pero tambien trabajo y estudio.. tendre que darme un tiempo.

Aaa por cierto estudio Lic. en informatica..

Saludos¡¡
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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Asignar resultado de consulta a variable Saiyan SQL 3 10-07-2007 15:44:10
Como asignar el resultado de una consulta a una variable Luis Cuenca Conexión con bases de datos 2 11-08-2006 16:27:32
Asignar consulta a bd a una matriz. josejorr OOP 3 30-09-2005 09:22:39
bdlookupcombobox dmagui Firebird e Interbase 5 31-05-2005 17:24:17


La franja horaria es GMT +2. Ahora son las 01:31:11.


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