Cita:
Empezado por Moparova
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
[-]
Datos.ItemsCostos.First;
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';
Datos.AQ_GOrden.ExecSQL;
Datos.ItemsCostos.Next;
End;
Espero que te sirva esto...
Salu2