Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Insertar en tabla dbgrid recorriendo filas y columnas una a una (https://www.clubdelphi.com/foros/showthread.php?t=56653)

Moparova 23-05-2008 03:34:09

Insertar en tabla dbgrid recorriendo filas y columnas una a una
 
Hola a todos,

He estado buscando e intentando todo el día y aún no logro resolver mi problema.

Trabajo en delphi 5 y sql server 2000.

Mi duda es la siguiente:

Tengo una dbgrid ligado a una tabla temporal con sig información, producto (pueden ser n productos) y 12campos de hora (1-12). esto es por facilidad de llenado del usuario.


Producto, Hora1, Hora2...... Hora12
xxxxx 1 2 3
yyyy 0 1 0
:

Mi problema es que yo necesito insertarlo en otra tabla pero de la sig forma:
sec producto cantidad
1 xxxx 1
2 yyyy 0
3 xxxx 2
4 yyyy 1
..
n xxxx 3
n+1 yyyy 0


es decir recorrer la tabla por cada fila y columna e irlo insertando en otra, lo necesito hacer en este orden por que los productos deben llevar una secuencia. Es decir, debo hacer lo contrario a una tabla pivote.

No se como hacerlo, solo se como puedo acceder a las columnas pero no a las filas,alguien podria ayudarme :(

Agradecera mucho su ayuda.

BlueSteel 23-05-2008 15:52:16

Cita:

Empezado por Moparova (Mensaje 288702)
Hola a todos,

He estado buscando e intentando todo el día y aún no logro resolver mi problema.

Trabajo en delphi 5 y sql server 2000.

Mi duda es la siguiente:

Tengo una dbgrid ligado a una tabla temporal con sig información, producto (pueden ser n productos) y 12campos de hora (1-12). esto es por facilidad de llenado del usuario.


Producto, Hora1, Hora2...... Hora12
xxxxx 1 2 3
yyyy 0 1 0
:

Mi problema es que yo necesito insertarlo en otra tabla pero de la sig forma:
sec producto cantidad
1 xxxx 1
2 yyyy 0
3 xxxx 2
4 yyyy 1
..
n xxxx 3
n+1 yyyy 0


es decir recorrer la tabla por cada fila y columna e irlo insertando en otra, lo necesito hacer en este orden por que los productos deben llevar una secuencia. Es decir, debo hacer lo contrario a una tabla pivote.

No se como hacerlo, solo se como puedo acceder a las columnas pero no a las filas,alguien podria ayudarme :(

Agradecera mucho su ayuda.

Hola

Creo que necesitas hacer un ciclo for ...

Aqui tengo un ejemplo (Delphi 7 y SQL 2000) utilizando una tabla temporal

Código Delphi [-]
 
// Me posiciono en el primer registro de la tabla temp
     Datos.ItemsCostos.First;  
// Realizó un ciclo For, de 1 a la cantidad de registros que tenga la tabla temp
     For i:= 1 to Datos.ItemsCostos.RecordCount do
     Begin
          Datos.AQ_GOrden.Close;
          Datos.AQ_GOrden.SQL.Clear;
          Datos.AQ_GOrden.SQL.Add('Insert Into GOrden (Ord_Numero, Ccto_Cod, Gord_Monto, Gord_Estado)');
          Datos.AQ_GOrden.SQL.Add('Values (:v01, :v02, :v03, :v04)');
          Datos.AQ_GOrden.Parameters[0].Value  := cNoc+1;
          Datos.AQ_GOrden.Parameters[1].Value  := Datos.ItemsCostos['cod'];
          Datos.AQ_GOrden.Parameters[2].Value  := Datos.ItemsCostos['monto'];
          Datos.AQ_GOrden.Parameters[3].Value  := 'E';
// Ejecuto Sentencia SQL para insertar el registro
          Datos.AQ_GOrden.ExecSQL;
// Avanzo un registro en tabla temp  
          Datos.ItemsCostos.Next;
     End;

Espero que te sirva esto...

Salu2:p:D


La franja horaria es GMT +2. Ahora son las 01:24:35.

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