Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CRUSORES
CRUSORES
BUILDER
FERSYSTEM
USO DE CURSORES
Los cursores nos permiten extraer informacin de servidor de base de datos
PROGR
ROGRAMACION
AMACION
// conetando servidor
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=encuesta;UID=estacion1;PWD=123456'"
connect;
dw_1.setTransobject(SQLCA)
dw_1.retrieve()
DECLARE mipregunta CURSOR FOR
SELECT pregunta FROM preguntas; //debemos indicar que campos mostrar
open mipregunta;
string pre1
FETCH mipregunta INTO :ccod , :pre1;
pre.text=pre1
cuando se utiliza un cursor hay declararlo y luego abrirlo y finalmente transferirlo a un
contendor como pueden ser cajas de texto ,etiquetas o una variable
para poder mostrar informacin debemos utilizar FETCH NEXT nos permite avanzar
de un registro a otro
DECLARE mipreguntas CURSOR FOR
SELECT pregunta,a1,a2,a3,a4,a5 FROM preguntas;
OPEN mipreguntas;
FETCH NEXT mipreguntas
INTO :pre.text, :p1.text, :p2.text, :p3.text, :p4.text, :p5.text;
Esto lo que hace es que empiece y se vaya al primer registro pero si deseamos el
segundo volver hacer un FETCH NEXT
DECLARE mipreguntas CURSOR FOR
SELECT pregunta,a1,a2,a3,a4,a5 FROM preguntas;
OPEN mipreguntas;
FETCH NEXT mipreguntas
INTO :pre.text, :p1.text, :p2.text, :p3.text, :p4.text, :p5.text;
FETCH NEXT mipreguntas
INTO :pre.text, :p1.text, :p2.text, :p3.text, :p4.text, :p5.text;
Fersystem_soft@hotmail.com
www.fersystem.tk
POWER
BUILDER
FERSYSTEM
Por ejemplo nos podemos desplazar avanzado con un bucle nos lleve a la pocin 5
Para ello tengo cerrar el cursor y abrir para que inicie desde el inicio se desplace de forma
exacta
AVANZAR
PROGR
ROGRAMACION
AMACION
close mipreguntas;
open mipreguntas;
int a,t,ccon
ccon=5
for a=1 to ccon
FETCH NEXT mipreguntas
INTO :pre.text,:p1.text,:p2.text,:p3.text,:p4.text,:p5.text;
t=a
next
avan=t
RETOCEDER
cuando quiero retroceder debo saber en que pocin estoy indicar que retroceda restando un
registro mediante un bucle debido que se no se puede retroceder de forma automtica
AL INICIO
Si solo quiero ir al inicio es mas fcil tengo cerrar el Curso y volverlo a abrir
close mipreguntas;
open mipreguntas;
FETCH mipreguntas
INTO :pre.text,:p1.text,:p2.text,:p3.text,:p4.text,:p5.text;
Contar una posion usnado un cursor
DECLARE contar CURSOR FOR
SELECT count(pregunta) FROM preguntas; // consultamos cuantos registros hay
open contar;
integer ccon
//variable que recibir el total
fetch contar into :ccon; // transferencia del total de registros
totalp.text=string(ccon)
Fersystem_soft@hotmail.com
www.fersystem.tk