Power Builder - Insertar filas a una tabla con datos de un cursor

   
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Insertar filas a una tabla con datos de un curs

Publicado por MutouKazuki (2 intervenciones) el 09/07/2008 09:11:18
Ojala esto resuelva tu problema

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 WHILE SQLCA.sqlcode = 0
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 cur_asignatura INTO :vidasignatu, :videspe, :vciclo;
LOOP
CLOSE cur_asignatura;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Insertar filas a una tabla con datos de un curs

Publicado por Jorge (3 intervenciones) el 09/07/2008 17:28:38
Ya he probado con todos los tipos de ciclos repetitivos, DO WHILE, DO...LOOP WHILE, DO UNTIL ... LOOP, y no logro insertar las filas del CURSOR a la tabla SGA_EVELUACIONES con INSERT INTO, PERO EL DROPDOWNLISTBOX ddlb_prueba si se llena con las columnas del cursor.
La pregunta es ¿Porque aparentemente se INSERTAN las filas encontradas con el cursor pero sin embargo solo INSERTA la ultima fila en la tabla SGA_EVALUACIONES?.
Los compañeros que tengan mas experiencia en Power Builder porfavor talvez puedan analizar este problema y puedan ayudarme

Gracias.


Jorge Nima Madrid
Piura - Sullana-Perú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar