Ir al contenido


Foto

como ver datos de un bd en un DBComboBox


  • Por favor identifícate para responder
16 respuestas en este tema

#1 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 22 julio 2011 - 01:51

saludos

me podrian ayudar indicandome como ver un campo de una tabla de interbase en un  DBComboBox
tengo creado un dataset  y un datasource que mas tengo que hacer?

  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 julio 2011 - 02:00

Hola
Necesitas un componente Table o Query ademas datasource.
En el dbcombobox hay dos propiedades:
Datasource = aqui pones el datasource.
DataFile = aqui pones el campo que quieres.
Saludos
  • 0

#3 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 22 julio 2011 - 02:10

gracias caral por la respuesta

tengo un query le llamo GENERADOR en la opcion database lo conecto con IBDatabase1

En el ibcombobox
datasource =datasource1
datafield=decripcion

pero cuando ejecuto el programa no muesta nada???

me falta algo mas??? :embarrassed: :sad: :sad:
  • 0

#4 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 22 julio 2011 - 02:14

en el sql de query tengo

select descripcion from ESTADO_AFILIACION
  • 0

#5 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 julio 2011 - 02:32

Hola
Tienes conectado el query en el evento OnCreate del form ?.
Tiene que estar activo el query.
Saludos
  • 0

#6 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 julio 2011 - 02:44

Hola
Tambien lo puedes hacer con un sencillo Combobox asi:


delphi
  1.   GENERADOR .SQL.Text := 'select descripcion from ESTADO_AFILIACION';
  2.   GENERADOR .Active := True;
  3.   While not GENERADOR .Eof do
  4.   begin
  5.       Combobox1.Items.Add(GENERADOR .Fields[0].Text);
  6.       GENERADOR .Next;
  7.   end;
  8.   QTemp.Active := False;


Colocas un combobox.
En el evento Oncreate del from pones el codigo de arriba y listo.
Saludos


  • 0

#7 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 22 julio 2011 - 03:23

Siiiiiiii, eres un genio te lo agradesco muchisimo, gracias por el dato.


me puedes explicar por fa la linea de codigo
QTemp.Active := False;
que hace??
me genera un error


  • 0

#8 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 julio 2011 - 03:27

Hola
Es un despiste mio, es el nombre del query, cambie todos menos ese. :)
Es asi:


delphi
  1. GENERADOR .SQL.Text := 'select descripcion from ESTADO_AFILIACION';
  2.   GENERADOR .Active := True;
  3.   While not GENERADOR .Eof do
  4.   begin
  5.       Combobox1.Items.Add(GENERADOR .Fields[0].Text);
  6.       GENERADOR .Next;
  7.   end;
  8. GENERADOR.Active := False;


Saludos
  • 0

#9 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 22 julio 2011 - 03:29

ya entiendo gracias de verdad te pasaste con la ayuda eres muy amable :smiley:
  • 0

#10 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 22 julio 2011 - 03:32

Hola
Con gusto, para eso estamos, para tratar de ayudar. (y)
Cualquier duda que tengas, aqui te ayudamos en lo que podamos. (b)
Saludos
  • 0

#11 memofer

memofer

    Member

  • Miembros
  • PipPip
  • 32 mensajes

Escrito 01 marzo 2013 - 09:03

Hola Caral
Se que eres muy amable.
Podrias explicarme que sucede cuando estar usando un DBComboBox y le asignar un DataSource y a ese mismo le asignas un Query que funciona perfectamente, probado en un WorkBench, pero que en el DBComboBox solo me muestra un resultado y no los 10 o 20 que deberia mostrar?
:|
  • 0

#12 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 01 marzo 2013 - 12:05

Hola Caral
Se que eres muy amable.
Podrias explicarme que sucede cuando estar usando un DBComboBox y le asignar un DataSource y a ese mismo le asignas un Query que funciona perfectamente, probado en un WorkBench, pero que en el DBComboBox solo me muestra un resultado y no los 10 o 20 que deberia mostrar?
:|

Aunque no soy el destinatario de la pregunta, te voy a contestar.  :D
El DbComboBox está ligado a un DataSource y a un Campo, por eso siempre solamente  te mostrará el valor del campo, como si se tratase de un TDBEdit.
Ahora bien, el DBComboBox también cuenta con la propiedad Items (solo para facilitar la entrada de datos), estos los puedes asignar de muchas maneras, bien sea manualmente en tiempo de diseño o dinámicamente:  a partir de un archivo de texto o recorriendo un Dataset (que no necesariamente debe ser el mismo al que está asignado el DBComboBox en cuestión, podría ser cualquier otro), que es justo lo que Caral te indica en un post anterior.

Saludos
  • 0

#13 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 01 marzo 2013 - 01:41

Lo que menciona nuestro amigo Wilson es correcto. generalmente se llenan a mano los combos con las opciones que requieres. Por eso yo hice un componente que se encarga de esa rutinaria tarea.

http://elpoli.delphi...mbo-con-delphi/
  • 0

#14 memofer

memofer

    Member

  • Miembros
  • PipPip
  • 32 mensajes

Escrito 01 marzo 2013 - 03:00

Bueno y entonces para que existe el DBComboBox??
Si con un DBEdit se puede hacer eso,
crei que el DBComboBox era para llenarlo asi como un DBGrid que se llena de acuerdo a los campos que uno le indica y que estan en un Query especifico o una Tabla, se como se usan los DBEdit, DBGrid, pero crei que me faltaba saber algo mas respecto al DBComboBox.
De cualquier forma, gracias a todos por su ayuda.
Nota: y lo de el llenado con el ComboBox, tambien lo se hacer, pero queria ver si me podia evitar ese paso y llenarlo asi de facil con el DBComboBox.
  • 0

#15 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 01 marzo 2013 - 05:03

Para evitar ese paso esta el dbLookupCombobox, usas las propiedades listsource y listfield para llenar la lista y datasource y datafield para indicar donde se debe guardar el valor
  • 0

#16 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 01 marzo 2013 - 07:03

Bueno y entonces para que existe el DBComboBox??
Si con un DBEdit se puede hacer eso

Imagina que una tabla de tu base de datos tenga el campo "PAIS", si utilizas un TDBEdit y dejas que los usuarios entren libremente el nombre del país, algunos podrían escribir VENEZUELA, otros BENEZUELA,  otros VENESUELA, otros podrían escribir  cualquier cosa (a menos que hicieras una complicada rutina de validación), de tal modo que cuando necesites hacer alguna consulta por países, tus datos van a ser muy inexactos; en cambio si utilizas un DBComboBox (y lo configuras para que no permita escritura), simplemente agregas a la propiedad Items el listado de países y siempre obtendrás en ese campo un país válido.

Por defecto en un DBComboBox se pueden teclear datos arbitrarios, en este caso solo se  utiliza solo para agilizar la entrada de datos.

Saludos
  • 0

#17 memofer

memofer

    Member

  • Miembros
  • PipPip
  • 32 mensajes

Escrito 01 marzo 2013 - 09:52

Para evitar ese paso esta el dbLookupCombobox, usas las propiedades listsource y listfield para llenar la lista y datasource y datafield para indicar donde se debe guardar el valor

Seria mucho pedir un pequeño ejemplo de tu parte eduarcol,
por favor
  • 0




IP.Board spam blocked by CleanTalk.