Ver Mensaje Individual
  #3  
Antiguo 17-06-2008
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Arrow Consulta....

Cita:
Empezado por johurgi Ver Mensaje
Hola a todos,

¿Como puedo coger los datos que me devuelve una query?tengo en mi programa una tquery que consulta un numero variable de columnas, estas columnas tengo que leerlas despues una a una.

Mis datos en la tabla los tengo de la siguiente forma.
Código SQL [-]
COD     TEXTO
--------------
...
1.1       HOLA
1.2       MUNDO
1.3       .
...


Y el codigo que habia escrito y no me funciona es el siguiente


Código:
filtro:='select * from tabla where cod like '1.*';
consulta.sql.text:=filtro;
consulta.execsql;
consulta.open;
if consulta.recordcount <> 0 then
begin
//RECOGO LOS DATOS
end;
gracias por vuestra ayuda.

Creo que una buena forma sería a través de un array dinámico:

Código Delphi [-]
procedure cargarArrayDinamico(...);
var
  A : array of array of string;
  I, J : Integer;
begin
  SetLength(A, consulta.fieldCount); //Cantidad de columnas que te devolvió la consulta
  consulta.first;
  for I := 0 to consulta.recordCount do //Cant. de registros que devolvió la consulta
  begin
  //Recorremos todas las columnas  
    for J := Low(A[i]) to High(A[i]) do
    begin
       SetLength(A[i], consulta.recordCount); //Le agregamos las filas a la segunda dimensión, para cada A[i]  
    end;
  end; //del primer for...
//a esta altura ya tengo el array del mismo tamaño que la consulta y puedo hacer lo que quiera con ellas.

No se si esto es lo que pides.

No he probado aún este código pero la idea está. No conozco una función que te levante directamente los valores de la consulta y los mande a un array pero supongo que con esto se arregla la cosa...
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita