SlideShare una empresa de Scribd logo
1 de 12
RESULTSET
PROF: MARCO AURELIO PORRO CHULLI
INTEGRANTES:
ING: SISTEMAS Y TELEMATICA
 AARON DELGADO ESPARRAGA
 FIORELLA AGUILAR ISUIZA
RESULTSET:
Es el objeto que, proporciona varios métodos para obtener los datos de columna correspondientes a
una fila.
Un ResultSet contiene todas las filas que satisfacen las condiciones de una sentencia SQL y
proporciona el acceso a los datos de estas filas mediante un conjunto de métodos get que permiten
el acceso a las diferentes columnas de la filas. El método ResultSet.next se usa para moverse a la
siguiente fila del result set, convirtiendo a ésta en la fila actual.
El formato general de un result set es una tabla con cabeceras de columna y los valores
correspondientes devueltos por la ‘query’. Por ejemplo, si la ‘query’ es SELECT a, b, c FROM Table1, el
resultado tendrá una forma semejante a :
A b c
-------- --------- --------
12345 Cupertino CA
83472 Redmond WA
83492 Boston MA
Filas y Cursores:
Un ResultSet mantiene un cursor que apunta a la fila actual de datos. El cursor se mueve una fila hacia abajo
cada vez que se llama al método next. Inicialmente se sitúa antes de la primera fila, por lo que hay que llamar al
método next para situarlo en la primera fila convirtiéndola en la fila actual. Las filas de ResultSet se recuperan
en secuencia desde la fila más alta a la más baja.
Un cursor se mantiene válido hasta que el objeto Resultset o su objeto padre Statement se cierra.
En SQL, el cursor resultado para una tabla tiene nombre. Si una base de datos permite upadtes posicionados
o deletes posicionados, el nombre del cursor es necesario y debe ser proporcionado como un parámetro del
comando update o delete. El nombre del cursor puede obtenerse mediante una llamada al método
getCursorName.
Columnas:
Los métodos getXXX suministran los medios para recuperar los valores de las columnas de la fila
actúal. Dentro de cada fila, los valores de las columnas pueden recuperarse en cualquier orden,
pero para asegurar la máxima portabilidad, deberían extraerse las columnas de izquierda a
derecha y leer los valores de las columnas una única vez.
Puede usarse o bien el nombre de la columna o el número de columna para referirse a esta. Por
ejemplo: si la columna segunda de un objeto RecordSet rs se denomina “title” y almacena valores
de cadena, cualquiera de los dos ejemplos siguientes nos devolverá el valor almacenado en la
columna.
String s = rs.getString("title");
String s = rs.getString(2);
Nótese que las columnas se numeran de izquierda a derecha comenzando con la columna 1.
Además los nombres usados como input en los métodos getXXX son insensibles a las mayúsculas.
PROPIEDAD DEL RESULSET
En la lista siguiente se resumen las propiedades del objeto ResultSet:
Nombre de propiedad
Descripción
 MaxMultiLineTextLength
Establece o devuelve el límite actual de longitud de datos obtenido de un campo de texto de varias
líneas. El límite se aplica a los campos de serie cortos así como también a los campos de texto de varias
líneas.
 MaxResultSetRows
Establece o devuelve el límite inicial sobre el número de registros que se incluirá en el conjunto de
resultados cuando se ejecuta una consulta.
 RecordCount
Devuelve el recuento de registros (número de filas) del conjunto de resultados.
En la lista siguiente se resumen los métodos del objeto ResultSet:
Nombre de método
AddParamValue : Asigna uno o más valores a un parámetro.
ClearParamValues: Borra todos los valores asociados a un parámetro.
EnableRecordCount: Habilita el recuento de registros para el conjunto de resultados.
Execute:Ejecuta la consulta y rellena el conjunto de resultados con datos.
ExecuteAndCountRecords: Ejecuta la consulta, rellena el conjunto de resultados con datos y devuelve el
recuento de registros (número de filas) del conjunto de resultados.
ExecuteAndSave: Ejecuta una consulta y guarda el conjunto de resultados como un archivo.
GetAllColumnValues:Devuelve todos los valores de columna del conjunto de resultados.
Valores resultado NULL. Para determinar si un valor resultado dado es JDBC NULL, primero debe
intentarse leer la columna y usar el método ResultSet.wasNull para descubrir si el valor devuelto es
NULL Cuando se ha leido un JDBC NULL usando uno de los métodos ResultSet.getXXX, el método
devuelve algo de lo siguiente: • Un valor null de Java para aquellos métodos getXXX que devuelven
objetos Java (tales como getString, getBigDecimal, getBytes, getDate, getTime, getTimestamp,
getAsciiStream, getUnicodeStream, getBinaryStream, getObject). • Un valor cero para getByte,
getInt, getLong, getFloat y getDouble. • Un valor false para getBoolean.
Result sets opcionales o múltiples.
Normalmente cuando se ejecuta una sentencia SQL o bien se usa excuteQuery (que devuelve un único
ResultSet) o bien executeUpdate (que puede usarse para cualquier tipo de sentencia de modificación de
base de datos y que devuelve un contador de las filas que han sido afectadas. De cualquier modo, bajo
ciertas circunstancias una aplicación puede no saber si una sentencia devolverá un result set hasta que
no haya sido ejecutada. Además, ciertos procedimientos almacenados pueden devolver varios result sets
y/o update counts. Para acomodarse a estas situaciones, JDBC provee de un mecanismo por el cual una
aplicación puede ejecutar una sentencia y luego procesar una colección arbitraria de result sets y update
counts. Este mecanismo se basa en una primera llamada a un método general execute y luego llamar a
otros tres métodos getResultSet, getUpdateCount y getMoreResults. Estos métodos permiten a una
aplicación explorar los resultados de las sentencias y determinar si dan como resultado un result set o un
update count. 35 No se necesita hacer nada para cerrar un ResultSet. Se cierra automáticamente cuando
por la Statement que la crea cuando se cierra esta, y se reutiliza cuando cuando se recupera el próximo
resultado de una secuencia de múltiples resultados.
Ejemplo: crear un procedimiento con múltiples ResultSets
public class CallableStatementExample1 {
public static void main(java.lang.String[] args) {
// Registrar el controlador JDBC nativo. Si no podemos
// registrar el controlador, la prueba no puede continuar.
try {
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
// Crear las propiedades de la conexión
Properties properties = new Properties ();
properties.put ("user", "userid");
properties.put ("password", "password");
// Conectar con la base de datos del servidor local
Connection c = DriverManager.getConnection("jdbc:db2://*local", properties);
Statement s = c.createStatement();
// Crear un procedimiento con múltiples ResultSets.
String sql = "CREATE PROCEDURE MYLIBRARY.SQLSPEX1 " +
"RESULT SET 2 LANGUAGE SQL READS SQL DATA SPECIFIC MYLIBRARY.SQLSPEX1 " +
"EX1: BEGIN " +
" DECLARE C1 CURSOR FOR SELECT * FROM QSYS2.SYSPROCS " +
" WHERE SPECIFIC_SCHEMA = 'MYLIBRARY'; " +
" DECLARE C2 CURSOR FOR SELECT * FROM QSYS2.SYSPARMS " +
" WHERE SPECIFIC_SCHEMA = 'MYLIBRARY'; " +
" OPEN C1; " +
" OPEN C2; " +
" SET RESULT SETS CURSOR C1, CURSOR C2; " +
"END EX1 ";
try {
s.executeUpdate(sql);
} catch (SQLException e) {
// NOTA: Aquí ignoramos el error. Hacemos la
// suposición de que el único motivo de que esto falle
// se debe a que el procedimiento ya existe. Otros
// motivos de que falle son que el compilador C
// no se encuentre para para compilar el procedimiento
// o que la colección MYLIBRARY no existe en el sistema.
}
s.close();
// Ahora, utilizar JDBC para ejecutar el procedimiento y obtener los resultados. En
// este caso, vamos a obtener información sobre los procedimientos de'MYLIBRARY'
// (que es también donde creamos este procedimiento, para así
// estar seguros de que haya algo que obtener.
CallableStatement cs = c.prepareCall("CALL MYLIBRARY.SQLSPEX1");
ResultSet rs = cs.executeQuery();
// Ahora tenemos el primer objeto ResultSet que el procedimiento almacenado
// dejó abierto. Hay que utilizarlo.
int i = 1;
while (rs.next()) {
System.out.println("Procedimiento almacenado de MYLIBRARY
" + i + " es " + rs.getString(1) + "." +
rs.getString(2));
i++;
}
System.out.println("");
// Ahora, obtener el siguiente objeto ResultSet del sistema - el anterior
// se ha cerrado automáticamente.
if (!cs.getMoreResults()) {
System.out.println("Algo ha fallado. Debería haber
habido otro ResultSet, hay que salir.");
System.exit(0);
}
rs = cs.getResultSet();
// Ahora tenemos el segundo objeto ResultSet que el procedimiento almacenado
// dejó abierto. Hay que utilizarlo.
i = 1;
while (rs.next()) {
System.out.println("Procedimiento de MYLIBRARY " + rs.getString(1)
+ "." + rs.getString(2) +
" parámetro: " + rs.getInt(3) + " dirección:
" + rs.getString(4) +
" tipo de datos: " + rs.getString(5));
i++;
}
if (i == 1) {
System.out.println("Ninguno de los procedimientos almacenados tiene parámetros.");
}
if (cs.getMoreResults()) {
System.out.println("Algo ha fallado,
no debe haber otro ResultSet.");
System.exit(0);
}
cs.close(); // cerrar el objeto CallableStatement.
c.close(); // cerrar el objeto Connection.
} catch (Exception e) {
System.out.println("Algo ha fallado...");
System.out.println("Razón: " + e.getMessage());
e.printStackTrace();
}
}
Resulset

Más contenido relacionado

La actualidad más candente

Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)José Toro
 
Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)José Toro
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)José Toro
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)José Toro
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)José Toro
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)José Toro
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)José Toro
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)José Toro
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)José Toro
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)José Toro
 
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDBjhsanchez24
 

La actualidad más candente (19)

Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)
 
Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)Sesion06a - Manipulacion de datos (Oracle)
Sesion06a - Manipulacion de datos (Oracle)
 
Presentación result set
Presentación result setPresentación result set
Presentación result set
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)
 
Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)Sesion09 - Manejo de Excepciones (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
 
Preparedstatement
PreparedstatementPreparedstatement
Preparedstatement
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 
Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)Sesión03 - Creación de objetos (Oracle)
Sesión03 - Creación de objetos (Oracle)
 
Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)Sesión12 - Trigger (Oracle)
Sesión12 - Trigger (Oracle)
 
Pl
PlPl
Pl
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)Sesion10 - Funciones y procedimientos (Oracle)
Sesion10 - Funciones y procedimientos (Oracle)
 
Curso SQL - Leccion 10
Curso SQL - Leccion 10Curso SQL - Leccion 10
Curso SQL - Leccion 10
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 

Destacado

Practica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cPractica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cCarolina
 
Sociedad de la Información, Tecnologías digitales y la Educación
Sociedad de la Información, Tecnologías digitales y la EducaciónSociedad de la Información, Tecnologías digitales y la Educación
Sociedad de la Información, Tecnologías digitales y la EducaciónImer Benitez
 
Practica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cPractica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cCarolina
 
Introducción a la Tecnología
Introducción a la Tecnología Introducción a la Tecnología
Introducción a la Tecnología Imer Benitez
 
Basic Guide to Applying for a Canadian Study Permit
Basic Guide to Applying for a Canadian Study PermitBasic Guide to Applying for a Canadian Study Permit
Basic Guide to Applying for a Canadian Study PermitDeanne Acres
 
Beginners Guide to Working in Canada
Beginners Guide to Working in CanadaBeginners Guide to Working in Canada
Beginners Guide to Working in CanadaDeanne Acres
 
E marketing Paris presentation - January 29 - 2013
E marketing Paris presentation - January 29 - 2013 E marketing Paris presentation - January 29 - 2013
E marketing Paris presentation - January 29 - 2013 Brightcove
 

Destacado (9)

Updated Resume
Updated ResumeUpdated Resume
Updated Resume
 
Practica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cPractica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina c
 
Sociedad de la Información, Tecnologías digitales y la Educación
Sociedad de la Información, Tecnologías digitales y la EducaciónSociedad de la Información, Tecnologías digitales y la Educación
Sociedad de la Información, Tecnologías digitales y la Educación
 
Practica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina cPractica de psicologia social p1 vdlp carolina c
Practica de psicologia social p1 vdlp carolina c
 
Introducción a la Tecnología
Introducción a la Tecnología Introducción a la Tecnología
Introducción a la Tecnología
 
Sub - Station
Sub - StationSub - Station
Sub - Station
 
Basic Guide to Applying for a Canadian Study Permit
Basic Guide to Applying for a Canadian Study PermitBasic Guide to Applying for a Canadian Study Permit
Basic Guide to Applying for a Canadian Study Permit
 
Beginners Guide to Working in Canada
Beginners Guide to Working in CanadaBeginners Guide to Working in Canada
Beginners Guide to Working in Canada
 
E marketing Paris presentation - January 29 - 2013
E marketing Paris presentation - January 29 - 2013 E marketing Paris presentation - January 29 - 2013
E marketing Paris presentation - January 29 - 2013
 

Similar a Resulset (20)

Result set
Result setResult set
Result set
 
Resultset
ResultsetResultset
Resultset
 
Resulset
Resulset Resulset
Resulset
 
RESULTSET
RESULTSETRESULTSET
RESULTSET
 
ResultSet
ResultSetResultSet
ResultSet
 
ee
eeee
ee
 
Resultset
ResultsetResultset
Resultset
 
Resultset
ResultsetResultset
Resultset
 
Resultset
ResultsetResultset
Resultset
 
Resulset en java
Resulset en javaResulset en java
Resulset en java
 
Statement
StatementStatement
Statement
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentacion
PresentacionPresentacion
Presentacion
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.LABORATORIO DE PROGRAMACIÓN I.
LABORATORIO DE PROGRAMACIÓN I.
 
ResultSet
ResultSetResultSet
ResultSet
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
Tema: Result set
Tema: Result setTema: Result set
Tema: Result set
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 

Más de Fiorella Aguilar Isuiza (20)

Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
Admnistracion de la seguridad
Admnistracion de la seguridadAdmnistracion de la seguridad
Admnistracion de la seguridad
 
Copia de seguridad y restaurar
Copia de seguridad y restaurarCopia de seguridad y restaurar
Copia de seguridad y restaurar
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Triggr
TriggrTriggr
Triggr
 
Universidad politecnica amazonica
Universidad politecnica amazonicaUniversidad politecnica amazonica
Universidad politecnica amazonica
 
Vistas
VistasVistas
Vistas
 
Comando ddl
Comando ddlComando ddl
Comando ddl
 
Blog transact sql
Blog transact sqlBlog transact sql
Blog transact sql
 
Ejecutablenetbeans
EjecutablenetbeansEjecutablenetbeans
Ejecutablenetbeans
 
Reportes
ReportesReportes
Reportes
 
Jdbc
JdbcJdbc
Jdbc
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 
Objeto connectio.docx
Objeto connectio.docxObjeto connectio.docx
Objeto connectio.docx
 
Espacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientEspacio de nombres system.data.sql client
Espacio de nombres system.data.sql client
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor
GestorGestor
Gestor
 
Poo y visual
Poo y visualPoo y visual
Poo y visual
 
Reportes
ReportesReportes
Reportes
 
preparedStatement
preparedStatementpreparedStatement
preparedStatement
 

Último

PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 

Último (20)

PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 

Resulset

  • 1. RESULTSET PROF: MARCO AURELIO PORRO CHULLI INTEGRANTES: ING: SISTEMAS Y TELEMATICA  AARON DELGADO ESPARRAGA  FIORELLA AGUILAR ISUIZA
  • 2. RESULTSET: Es el objeto que, proporciona varios métodos para obtener los datos de columna correspondientes a una fila. Un ResultSet contiene todas las filas que satisfacen las condiciones de una sentencia SQL y proporciona el acceso a los datos de estas filas mediante un conjunto de métodos get que permiten el acceso a las diferentes columnas de la filas. El método ResultSet.next se usa para moverse a la siguiente fila del result set, convirtiendo a ésta en la fila actual. El formato general de un result set es una tabla con cabeceras de columna y los valores correspondientes devueltos por la ‘query’. Por ejemplo, si la ‘query’ es SELECT a, b, c FROM Table1, el resultado tendrá una forma semejante a : A b c -------- --------- -------- 12345 Cupertino CA 83472 Redmond WA 83492 Boston MA
  • 3. Filas y Cursores: Un ResultSet mantiene un cursor que apunta a la fila actual de datos. El cursor se mueve una fila hacia abajo cada vez que se llama al método next. Inicialmente se sitúa antes de la primera fila, por lo que hay que llamar al método next para situarlo en la primera fila convirtiéndola en la fila actual. Las filas de ResultSet se recuperan en secuencia desde la fila más alta a la más baja. Un cursor se mantiene válido hasta que el objeto Resultset o su objeto padre Statement se cierra. En SQL, el cursor resultado para una tabla tiene nombre. Si una base de datos permite upadtes posicionados o deletes posicionados, el nombre del cursor es necesario y debe ser proporcionado como un parámetro del comando update o delete. El nombre del cursor puede obtenerse mediante una llamada al método getCursorName.
  • 4. Columnas: Los métodos getXXX suministran los medios para recuperar los valores de las columnas de la fila actúal. Dentro de cada fila, los valores de las columnas pueden recuperarse en cualquier orden, pero para asegurar la máxima portabilidad, deberían extraerse las columnas de izquierda a derecha y leer los valores de las columnas una única vez. Puede usarse o bien el nombre de la columna o el número de columna para referirse a esta. Por ejemplo: si la columna segunda de un objeto RecordSet rs se denomina “title” y almacena valores de cadena, cualquiera de los dos ejemplos siguientes nos devolverá el valor almacenado en la columna. String s = rs.getString("title"); String s = rs.getString(2); Nótese que las columnas se numeran de izquierda a derecha comenzando con la columna 1. Además los nombres usados como input en los métodos getXXX son insensibles a las mayúsculas.
  • 5. PROPIEDAD DEL RESULSET En la lista siguiente se resumen las propiedades del objeto ResultSet: Nombre de propiedad Descripción  MaxMultiLineTextLength Establece o devuelve el límite actual de longitud de datos obtenido de un campo de texto de varias líneas. El límite se aplica a los campos de serie cortos así como también a los campos de texto de varias líneas.  MaxResultSetRows Establece o devuelve el límite inicial sobre el número de registros que se incluirá en el conjunto de resultados cuando se ejecuta una consulta.  RecordCount Devuelve el recuento de registros (número de filas) del conjunto de resultados.
  • 6. En la lista siguiente se resumen los métodos del objeto ResultSet: Nombre de método AddParamValue : Asigna uno o más valores a un parámetro. ClearParamValues: Borra todos los valores asociados a un parámetro. EnableRecordCount: Habilita el recuento de registros para el conjunto de resultados. Execute:Ejecuta la consulta y rellena el conjunto de resultados con datos. ExecuteAndCountRecords: Ejecuta la consulta, rellena el conjunto de resultados con datos y devuelve el recuento de registros (número de filas) del conjunto de resultados. ExecuteAndSave: Ejecuta una consulta y guarda el conjunto de resultados como un archivo. GetAllColumnValues:Devuelve todos los valores de columna del conjunto de resultados.
  • 7. Valores resultado NULL. Para determinar si un valor resultado dado es JDBC NULL, primero debe intentarse leer la columna y usar el método ResultSet.wasNull para descubrir si el valor devuelto es NULL Cuando se ha leido un JDBC NULL usando uno de los métodos ResultSet.getXXX, el método devuelve algo de lo siguiente: • Un valor null de Java para aquellos métodos getXXX que devuelven objetos Java (tales como getString, getBigDecimal, getBytes, getDate, getTime, getTimestamp, getAsciiStream, getUnicodeStream, getBinaryStream, getObject). • Un valor cero para getByte, getInt, getLong, getFloat y getDouble. • Un valor false para getBoolean.
  • 8. Result sets opcionales o múltiples. Normalmente cuando se ejecuta una sentencia SQL o bien se usa excuteQuery (que devuelve un único ResultSet) o bien executeUpdate (que puede usarse para cualquier tipo de sentencia de modificación de base de datos y que devuelve un contador de las filas que han sido afectadas. De cualquier modo, bajo ciertas circunstancias una aplicación puede no saber si una sentencia devolverá un result set hasta que no haya sido ejecutada. Además, ciertos procedimientos almacenados pueden devolver varios result sets y/o update counts. Para acomodarse a estas situaciones, JDBC provee de un mecanismo por el cual una aplicación puede ejecutar una sentencia y luego procesar una colección arbitraria de result sets y update counts. Este mecanismo se basa en una primera llamada a un método general execute y luego llamar a otros tres métodos getResultSet, getUpdateCount y getMoreResults. Estos métodos permiten a una aplicación explorar los resultados de las sentencias y determinar si dan como resultado un result set o un update count. 35 No se necesita hacer nada para cerrar un ResultSet. Se cierra automáticamente cuando por la Statement que la crea cuando se cierra esta, y se reutiliza cuando cuando se recupera el próximo resultado de una secuencia de múltiples resultados.
  • 9. Ejemplo: crear un procedimiento con múltiples ResultSets public class CallableStatementExample1 { public static void main(java.lang.String[] args) { // Registrar el controlador JDBC nativo. Si no podemos // registrar el controlador, la prueba no puede continuar. try { Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); // Crear las propiedades de la conexión Properties properties = new Properties (); properties.put ("user", "userid"); properties.put ("password", "password"); // Conectar con la base de datos del servidor local Connection c = DriverManager.getConnection("jdbc:db2://*local", properties); Statement s = c.createStatement(); // Crear un procedimiento con múltiples ResultSets. String sql = "CREATE PROCEDURE MYLIBRARY.SQLSPEX1 " + "RESULT SET 2 LANGUAGE SQL READS SQL DATA SPECIFIC MYLIBRARY.SQLSPEX1 " + "EX1: BEGIN " +
  • 10. " DECLARE C1 CURSOR FOR SELECT * FROM QSYS2.SYSPROCS " + " WHERE SPECIFIC_SCHEMA = 'MYLIBRARY'; " + " DECLARE C2 CURSOR FOR SELECT * FROM QSYS2.SYSPARMS " + " WHERE SPECIFIC_SCHEMA = 'MYLIBRARY'; " + " OPEN C1; " + " OPEN C2; " + " SET RESULT SETS CURSOR C1, CURSOR C2; " + "END EX1 "; try { s.executeUpdate(sql); } catch (SQLException e) { // NOTA: Aquí ignoramos el error. Hacemos la // suposición de que el único motivo de que esto falle // se debe a que el procedimiento ya existe. Otros // motivos de que falle son que el compilador C // no se encuentre para para compilar el procedimiento // o que la colección MYLIBRARY no existe en el sistema. } s.close();
  • 11. // Ahora, utilizar JDBC para ejecutar el procedimiento y obtener los resultados. En // este caso, vamos a obtener información sobre los procedimientos de'MYLIBRARY' // (que es también donde creamos este procedimiento, para así // estar seguros de que haya algo que obtener. CallableStatement cs = c.prepareCall("CALL MYLIBRARY.SQLSPEX1"); ResultSet rs = cs.executeQuery(); // Ahora tenemos el primer objeto ResultSet que el procedimiento almacenado // dejó abierto. Hay que utilizarlo. int i = 1; while (rs.next()) { System.out.println("Procedimiento almacenado de MYLIBRARY " + i + " es " + rs.getString(1) + "." + rs.getString(2)); i++; } System.out.println(""); // Ahora, obtener el siguiente objeto ResultSet del sistema - el anterior // se ha cerrado automáticamente. if (!cs.getMoreResults()) { System.out.println("Algo ha fallado. Debería haber habido otro ResultSet, hay que salir."); System.exit(0); } rs = cs.getResultSet(); // Ahora tenemos el segundo objeto ResultSet que el procedimiento almacenado // dejó abierto. Hay que utilizarlo. i = 1; while (rs.next()) { System.out.println("Procedimiento de MYLIBRARY " + rs.getString(1) + "." + rs.getString(2) + " parámetro: " + rs.getInt(3) + " dirección: " + rs.getString(4) + " tipo de datos: " + rs.getString(5)); i++; } if (i == 1) { System.out.println("Ninguno de los procedimientos almacenados tiene parámetros."); } if (cs.getMoreResults()) { System.out.println("Algo ha fallado, no debe haber otro ResultSet."); System.exit(0); } cs.close(); // cerrar el objeto CallableStatement. c.close(); // cerrar el objeto Connection. } catch (Exception e) { System.out.println("Algo ha fallado..."); System.out.println("Razón: " + e.getMessage()); e.printStackTrace(); } }