Insertar filas a una tabla con datos de un cursor
Publicado por Jorge (3 intervenciones) el 09/07/2008 01:56:34
Necesito INSERTAR FILAS a una tabla con datos de un CURSOR y con datos de que vienen de un DATA WINDOW, declaro y aperturo el cursor y para comprobar q el cursor si selecciona las filas que se piden del SELECT agrego las variables del cursor a un DROPDOWNLISTBOX las filas del CURSOR si son agregadas al DDLB, PERO EL PROBLEMA ES QUE NO INSERTA TODAS LAS FILAS DEL CURSOR A LA TABLA SGA_EVALUACIONES, solo agrega la ultima fila, y los mas raro es que no muestra ni un error. Les muestro el codigo:
Integer nResp,nfila
STRING vidasignatu,videspe,vciclo,vidalu
nResp=MessageBox("Sistema de Evaluaciones","Desea registrar un nuevo alumno?",Question!,YesNo!)
If nResp=1 Then
If dw_1.Update() <> -1 then
Commit;
Else
Rollback;
End If
End If
sle_2.text=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"idespe")
sle_3.text=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"ciclo")
vidalu=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"idalumno")
DECLARE cur_asignatura CURSOR FOR
SELECT SGA_ASIGNATURA.IDASIGNATURA,SGA_ASIGNATURA.IDESPE,SGA_ASIGNATURA.CICLO
FROM SGA_ASIGNATURA
WHERE SGA_ASIGNATURA.IDESPE=:SLE_2.TEXT AND SGA_ASIGNATURA.CICLO=:SLE_3.TEXT;
//**********************************
integer c
OPEN cur_asignatura;
FETCH cur_asignatura INTO :vidasignatu, :videspe, :vciclo;
//***********************
DO
c=c+1
INSERT INTO SGA_EVALUACIONES(idalumno,idasignatura,anoaca,semestre,conceptual,procedimental,actitudinal,unidad) VALUES (:vidalu,:vidasignatu,:sle_fecha.text,:ddlb_1.text,0.00,0.00,0.00,1);
ddlb_prueba.AddItem(string(vidasignatu) + Space(1)+videspe + space(1)+vciclo)
FETCH NEXT cur_asignatura INTO :vidasignatu, :videspe, :vciclo;
LOOP WHILE SQLCA.SQLCode <> 100
CLOSE cur_asignatura;
tab_1.tabpage_1.dw_1.SetFocus()
SI ALGUIEN que domine este tema de CURSORES le agredezco mucho su gentil apoyo en este aprendizaje colaborativo gracias.
Integer nResp,nfila
STRING vidasignatu,videspe,vciclo,vidalu
nResp=MessageBox("Sistema de Evaluaciones","Desea registrar un nuevo alumno?",Question!,YesNo!)
If nResp=1 Then
If dw_1.Update() <> -1 then
Commit;
Else
Rollback;
End If
End If
sle_2.text=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"idespe")
sle_3.text=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"ciclo")
vidalu=tab_1.tabpage_1.dw_1.getitemstring(dw_1.GetRow(),"idalumno")
DECLARE cur_asignatura CURSOR FOR
SELECT SGA_ASIGNATURA.IDASIGNATURA,SGA_ASIGNATURA.IDESPE,SGA_ASIGNATURA.CICLO
FROM SGA_ASIGNATURA
WHERE SGA_ASIGNATURA.IDESPE=:SLE_2.TEXT AND SGA_ASIGNATURA.CICLO=:SLE_3.TEXT;
//**********************************
integer c
OPEN cur_asignatura;
FETCH cur_asignatura INTO :vidasignatu, :videspe, :vciclo;
//***********************
DO
c=c+1
INSERT INTO SGA_EVALUACIONES(idalumno,idasignatura,anoaca,semestre,conceptual,procedimental,actitudinal,unidad) VALUES (:vidalu,:vidasignatu,:sle_fecha.text,:ddlb_1.text,0.00,0.00,0.00,1);
ddlb_prueba.AddItem(string(vidasignatu) + Space(1)+videspe + space(1)+vciclo)
FETCH NEXT cur_asignatura INTO :vidasignatu, :videspe, :vciclo;
LOOP WHILE SQLCA.SQLCode <> 100
CLOSE cur_asignatura;
tab_1.tabpage_1.dw_1.SetFocus()
SI ALGUIEN que domine este tema de CURSORES le agredezco mucho su gentil apoyo en este aprendizaje colaborativo gracias.
Valora esta pregunta


0