• Jueves 18 de Abril de 2024, 17:20

Autor Tema:  Recorrer Un Datasource  (Leído 6205 veces)

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Recorrer Un Datasource
« en: Miércoles 28 de Febrero de 2007, 01:40 »
0
Hola,

    acabo de hacer una consulta SQL sobre un TQuery al que tengo asociado un DataSource. Mi pregunta es si se peude realizar un acceso indiexado a cada uno de los componentes obtenidos en la consulta y que están en el DataSource. Si es así, cómo podría hacer una asignación de un componente i a un elemento?? Existe la manera de hacerlo?

    Estoy tratando de hacer, por ejemplo ( muy sencillo ):

    SELECT * FROM usuario ( en un TQuery)

y ahora hago,

    for ( int i = 0 ; i < DataSource->DataSet->RecordCount - 1 ; ++i )
               miusuario = DataSet;

Esa es la idea que tengo.

Muchas gracias

wako13

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #1 en: Miércoles 28 de Febrero de 2007, 02:44 »
0
Puedes probar con los campos persistentes... sobre el TQuery le das click con el derecho y add all fields.. te van a aparecer todos los campos que trae la consulta y pues se me ocurre q' los puedes accesar de la siguiente forma:

Código: Text
  1. while(!TQuery-&#62;Eof)
  2. {
  3.    Miusuario = TQueryCAMPOPERSISTENTE-&#62;Value;
  4.  
  5. }
  6.  


Espero haberte ayudado...

Saludos Cordiales  :hola:

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #2 en: Miércoles 28 de Febrero de 2007, 11:48 »
0
No entiendo muy bien lo que quieres decir.

Vuelvo a repetir, tengo 2 problemas:

1.- Recorrer el objeto DataSource
2.- A qué tipo de objeto le asigno ese elemento seleccionado en el recorrido.

He probado lo que me dices, pero no se muy bien como hacerlo   :blink:

Gracias por contestar de todas formas. A ver si alguien me echa otro cablecillo.

Saludos!

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Recorrer Un Datasource
« Respuesta #3 en: Miércoles 28 de Febrero de 2007, 15:45 »
0
Pues por mi parte no entiendo muy bien el problema, quizá puedas explicarte un poco mejor y pueda ayudarte en algo. Y con respecto a recorrer un DataSource, yo hice algo semejante hace poco, recorría los resultados de una consulta de la siguiente forma:

Código: Text
  1.  
  2. void __fastcall TForm1::traer(String tobjetivo, String g, String grueso, String inv)
  3. {
  4.         int i,j, piezas, k=0;
  5.         String dato,x;
  6.         AnsiString sql=&#34;&#34;, campo;
  7.  
  8.         for(i=1;i&#60;=5;i++)
  9.         {
  10.          for(j=1;j&#60;=7;j++)
  11.          {
  12.                 k++;
  13.                 x=k;
  14.                 campo=g+x;
  15.                 sql=&#34;SELECT &#34;+campo+&#34; FROM '&#34;+tobjetivo+&#34;'&#34;;
  16.                 Query1-&#62;SQL-&#62;Clear();
  17.                 Query1-&#62;SQL-&#62;Add(sql);
  18.                 Query1-&#62;Open();
  19.                 dato=Query1-&#62;FieldByName(campo)-&#62;AsInteger;
  20.                 StringGrid1-&#62;Cells[j][i]=dato;
  21.                 sql=&#34;&#34;;
  22.                 Query1-&#62;Close();
  23.          }
  24.         }
  25.         Label1-&#62;Caption=&#34;Mostrando grueso &#34;+grueso+&#34; de Inventario&#092;nde &#34;+inv;
  26.  
  27. }
  28.  
  29.  

Quizá esto pueda servirte de alguna forma. :whistling:
Buena suerte. :D
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #4 en: Miércoles 28 de Febrero de 2007, 15:52 »
0
Hola,

    creo que lo que yo quiero hacer es algo parecido a lo que has escrito, pero quizás pueda explicarme mejor:

Yo tengo una tabla de personas, y esas personas tienen un campo para la coordenada X y otro para la Y, indicando la posición en algún sitio. Entonces, me interesa plotear puntos en la pantalla en función de esas coordenadas. Ese es mi problema.

Además, adicionalmente quiero saber si por ejemplo DATO en tu ejemplo podía ser una estructura que recogiera todos los campos de un registro, no solo un string. No sé si ahora me explico algo mejor...

Gracias!!!

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Recorrer Un Datasource
« Respuesta #5 en: Miércoles 28 de Febrero de 2007, 16:01 »
0
mmmmm, creo que estoy comenzando a entederte (je, esto de la informática es algo difícil), aunque me gustaría que me dijeras a que te refieres con una estructura y sería conveniente también ver la tabla, si podrías adjuntarla estaría muy bien. ;)
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #6 en: Miércoles 28 de Febrero de 2007, 17:09 »
0
Hola de nuevo,

      verás, te voy a explicar esto un poco más detalladamente:

Yo tengo un FORM de autenticación con su usuario y su contraseña. Cuando el usuario entra ( se conecta a la BD ), lo que hago es abrir otro FORM que tiene varias opciones, entre ellas la de ver sus datos personales y otra la de mostrar todos los objetos en un plano. Para la primera opción tengo que mostrar los datos haciendo un SELECT * FROM trabajador WHERE dni = dnidelformdeautenticacion. Ahora, en ese panel tengo una serie de labels y un TIMAGE para que se muestren todos los datos referentes al trabajador y su foto. La tabla tiene los siguientes campos:

DNI INTEGER
Cod_RFID VARCHAR(255)
SEXO CHAR(1)
NOMBRE VARCHAR(255)
APELLIDO1 VARCHAR(255)
APELLIDO2 VARCHAR(255)
FECHA DATE
DIRECCION VARCHAR(255)
TELEFONO INTEGER
HABITACION INTEGER
FOTOGRAFIA LONGBLOW
TIPO_TRABAJADOR VARCHAR(255)
TIPO_ACESSO VARCHAR(255)
PRIMARY KEY(DNI)


Ahora, cuando hago la query, tendría que tomar, campo por campo para cambiar el caption del label correspondiente, y no sé como hacerlo. También aprovecho para preguntarte si el tipo de dato para la imagen es correcto, porque soy noob en MySQL y solo me he guiado a traves de foros...

Y bueno, con respecto a la otra opcion de mostrar los objetos, tengo para cada objeto que pintarlo segun dos coordenadas X,Y, que son campos de la tabla objeto.

Muchas gracias!

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Recorrer Un Datasource
« Respuesta #7 en: Miércoles 28 de Febrero de 2007, 17:37 »
0
Cita de: "Ithilien"
Y bueno, con respecto a la otra opcion de mostrar los objetos, tengo para cada objeto que pintarlo segun dos coordenadas X,Y, que son campos de la tabla objeto.

Muchas gracias!
Bueno, con respecto a lo de la imagen, eso no te lo puedo responder porque yo se muy poco de MySQL, te recomiendo postear en el foro de PHP.

Y ahora, respecto a lo de mostrar la infrmación de las personas, como supongo que debe mostrarse una por una, has probado a usar los componentes de la paleta DBControls?. Creo esos pueden servirte y ahorrarte los trabajos con bucles.

Y el texto citado, me podrías decir exactamente a que objetos debes dibujar con las coordenadas?
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #8 en: Miércoles 28 de Febrero de 2007, 17:44 »
0
Respecto a la paleta DBControls imagino que te refieres a DATA CONTROLS. Lo que ocurre es que no me sirven porque lo que yo quiero es copiar cada valor de cada un o de los campos que te he enseñado de la tabla trabajador en un label, y se trata solo de un registro. De modo que lo que tengo que hacer es sacar, campo por campo e ir copiándolo en el label que corresponda.

y respecto a lo de los objetos, no me interesa mostrar nada. Solo tengo que cger cada para de coordenadas y pintar un TIMGAGE en el lugar que sea, por eso tengo que recorrer el conjunto de datos resultado de aplicar la consulta SELECT * FROM objeto WHERE planta = usuario.planta, tengiendo en cuenta que planta se refiere a la planta de un edificio y usuario.planta se refiere a la planta en la que se encuentra el usuario.

Saludos!

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Recorrer Un Datasource
« Respuesta #9 en: Miércoles 28 de Febrero de 2007, 17:59 »
0
Perfecto, ahora dime, cuantos Labels y cuantos registros son, porque me imagino que el número de labels debe ser igual al número de registros. Y ahora, eso siempre será variable.

Si puedes conectarte como en media hora (en lo que termino de desayunar) al messenger, mi nick es eddy_ef@hotmail.com (agregame a tu lista, yo ya estoy conectado)


Mientrás estaré pensando un poco sobre el asunto.
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Recorrer Un Datasource
« Respuesta #10 en: Miércoles 28 de Febrero de 2007, 18:00 »
0
Ya te he agregado