La interfaz ResultSet proporciona métodos getter (getBoolean, getLong,
etc.) para recuperar valores de columna de la fila actual. Los valores se
pueden recuperar utilizando el número de índice de la columna o el nombre de la
columna. En general, utilizar el índice de columna será más eficiente. Las
columnas se numeran desde 1. Para una portabilidad máxima, las columnas de
conjunto de resultados dentro de cada fila se deben leer en orden de izquierda
a derecha y cada columna debe leerse una sola vez.
Para los métodos getter, un controlador JDBC intenta convertir los datos
subyacentes al tipo Java especificado en el método getter y devuelve un valor
Java adecuado. La especificación JDBC tiene una tabla que muestra las
asignaciones permitidas de tipos SQL a tipos Java que pueden ser utilizados por
los métodos getter de ResultSet.
Los nombres de columna utilizados como entrada en los métodos getter son
insensibles a mayúsculas y minúsculas. Cuando se llama a un método getter con
un nombre de columna y varias columnas tienen el mismo nombre, se devolverá el
valor de la primera columna coincidente. La opción nombre de columna está
diseñada para utilizarse cuando se utilizan nombres de columna en la consulta
SQL que generó el conjunto de resultados. Para las columnas que no están
explícitamente nombradas en la consulta, es mejor utilizar números de columna.
Si se utilizan nombres de columna, el programador debe tener cuidado de
garantizar que se refieran únicamente a las columnas previstas, lo que se puede
asegurar con la cláusula SQL AS.
Se agregó un conjunto de métodos de actualización a esta interfaz en la
API JDBC 2.0 (SDK JavaTM 2, Versión estándar, versión 1.2). Los comentarios
relativos a los parámetros de los métodos getter también se aplican a los
parámetros de los métodos de actualización.
Los métodos de actualización se pueden utilizar de dos maneras:
Para actualizar un valor de columna en la fila actual. En un objeto
ResultSet desplazable, el cursor se puede mover hacia atrás y hacia delante, a
una posición absoluta oa una posición relativa a la fila actual. El siguiente
fragmento de código actualiza la columna NAME de la quinta fila del objeto
ResultSet rs y, a continuación, utiliza el método updateRow para actualizar la
tabla de origen de datos a partir de la cual se derivó rs.
Rs.absolute (5); // mueve el
cursor a la quinta fila de rs
Rs.updateString ( "NAME",
"AINSWORTH"); // actualiza el
// NAME columna de la fila 5 para ser AINSWORTH
Rs.updateRow (); // actualiza
la fila en el origen de datos
Para insertar valores de columna en la fila de inserción. Un objeto
ResultSet actualizable tiene una fila especial asociada con él que sirve como
área de espera para construir una fila que se va a insertar. El fragmento de
código siguiente mueve el cursor a la fila de inserción, crea una fila de tres
columnas e inserta en rs y en la tabla de origen de datos utilizando el método
insertRow.
Rs.moveToInsertRow (); // mueve
el cursor a la fila de inserto
Rs.updateString (1,
"AINSWORTH"); // actualiza el
// primera
columna de la fila de inserción AINSWORTH
Rs.updateInt (2,35); //
actualiza la segunda columna para que sea 35
Rs.updateBoolean (3, true); //
actualiza la tercera columna a true
Rs.insertRow ();
Rs.moveToCurrentRow ();
Un objeto ResultSet se cierra automáticamente cuando el objeto Statement
que lo generó se cierra, se vuelve a ejecutar o se utiliza para recuperar el
resultado siguiente de una secuencia de resultados múltiples.
El número, los tipos y las propiedades de las columnas de un objeto
ResultSet son proporcionados por el objeto ResultSetMetaData devuelto por el
método ResultSet.getMetaData.
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 las filas. El
método ResultSet.next se usa para moverse a la siguiente fila del result
set,convirtiendo a ésta en la fila actúal.
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
El siguiente
fragmento de código es un ejemplo de la ejecución de una sentencia SQL que
devolverá una colección de filas, con la columna 1 como un int, la columna 2
como una String y la columna 3 como un array de bytes:
java.sql.Statement stmt = conn.createStatement();
ResultSet r = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (r.next())
{
// print the values for the current row.
int i = r.getInt("a");
String s = r.getString("b");
float f = r.getFloat("c");
System.out.println("ROW = " + i + " " + s + "
" + f);
}
Filas y Cursores
Un ResultSet mantiene un cursor que apunta a
la fila actúal de datos. El cursor se mueve una fila hacia abajo cada vez que
se llama al método next. Incialmente se sitúa antes de la primera fila, por lo
que hay que llamar al método next para situarlo en la primera fila conviertiendola
en la fila actúal. 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.
No todas las bases de datos soportan updates
o deletes posicionados. Los métodos
DatabaseMetaData.supportsPositionedDelete y
DatabaseMetaData.supportsPositionedUpdate nos permiten descubrir si
estas operaciones están soportadas en una
conexión dada. Cuando lo están, el
driver o la DBMS deben asegurarse que las
filas seleccionadas están
apropiadamente bloquedas y por tanto que
estas operaciones no provoquen
actualizaciones anomalas ni otros problemas
de concurrencia.
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.
La opción de usar el nombre de columna fue
provista para que el usuario que
especifica nombres de columnas en una ‘query’
pueda usar esos nombres como
argumentos de los métodos getXXX. Si, por
otro lado, la sentencia select no
especifica nombres de columnas (tal como en
“select * from table1” o en
casos donde una columna es derivada), deben
usarse los números de columna. En
estas situaciones , no hay forma de que el
usuario sepa con seguridad cuales son
los nombres de las columnas.
En algunos casos, es posible para una query
SQL devolver un result set con más de
una columna con el mismo nombre. Si se usa el
nombre de columna como
argumento en un método getXXX, éste devolverá
el valor de la primera columna
que coincida con el nombre. Por eso, si hay
múltiples columnas con el mismo
nombre, se necesita usar un índice de columna
para asegurarse que se recupera el
valor de la columna correcta. Esto puede ser
ligeramente más eficiente que usar los
números de columna.
Información acerca de las columnas en un
ResultSet es accesible mediante el
método ResultSet.getMetaData. El objeto
ResultSetMetaData devuelto nos
da el numero, tipo y propiedades de las
columnas de los objetos ResultSet.
Si se conoce el nombre de una columna, pero
no su indice, puede usarse el método
findColumn para encontrar el número de
columna.
Tipos de datos y conversiones.
Para los métodos getXXX, el driver JDBC
intenta convertir los datos subyacentes a
tipos de datos Java . Por ejemplo, si el
método getXXX es getString y los tipos de
datos de la base de datos en la base
subyacente es VARCHAR, el driver JDBC
convertirá VARCHAR en String de Java. El
valor devuelto por getString será un
objeto Java de tipo String.
La siguiente tabla muestra que tipos JDBC
está permitido devolver para un método
getXXX y que tipos JDBC (tipos genéricos de
SQL) se recomiendan para
recuperarlos. Una x indica un método getXXX
legal para un tipo de dato particular.
Por ejemplo, cualquier método getXXX excepto
getBytes o getBinaryStream puede
usarse para recuperar valores de tipo
LONGVARCHAR, pero se recomienda usar
getAsciiStream o getUnicodeStream,
dependiendo de que tipo de dato se devuelve.
El método getObject devolverá cualquier tipo
de dato como un Object Java y es util
cuando los tipos de datos de la DBMS
subyacente son abstractos específicos de
ésta o cuando una aplicación genérica
necesita aceptar cualquier tipo de datos.
El uso de los métodos ResultSet.getXXX
recuperan tipos de datos comunes JDBC
Una “x” indica que el método getXXX puede
legalmente usarse para recuperar el
tipo JDBC dado.
Una “X” indica que el método getXXX es el
recomendado para recuperar el tipo de
dato dado.
Uso de
Streams valores muy grandes de filas
ResultSet hace posible el recuperar datos
arbitrariamente grandes de tipo
LONGVARBINARY o LONGVARCHAR. Los métodos
getBytes y getString
devuelven valores grandes (hasta los límites
impuestos por el valor devuelto por
Statement.getMaxFieldSize).
De todos modos, puede ser conveniente
recuperar datos muy grandes en ‘pedazos’
de tamaño fijo. Esto se hace mediante la
clase ResultSet que devuelve ‘streams’
java.io.Input desde los cuales los datos
pueden ser leidos en ‘pedazos’. Nòtese que
estas corrientes deben ser accedidas
inmediatamente porque se cierran
automáticamente con la llamada al siguiente
método getXXX de ResultSet. (Este
comportamiento está impuesto por las
restricciones de implementación de acceso a
grandes blob).
El API JDBC tiene tres métodos diferentes
para recuperar streams, cada uno con un
valor diferente de retorno.
• getBinaryStream devuelve una corriente que
simplemente suminiistra
bytes en ‘bruto’ desde la base de datos sin
ninguna conversión.
• getAsciiStream devuelve una corriente con
caracteres ASCII
• getUnicodeStream devuelve una corriente con
caracteres Unicode 1 de 2
bytes.
Notar que esto difiere de las corrientes Java
que devuelven bytes sn tipo y pueden
(por ejemplo) usarse para ambos caracteres
ASCII y Unicode.
A continuación veamos un ejemplo del uso de
getAsciiStream:
java.sql.Statement stmt =
con.createStatement();
ResultSet r = stmt.executeQuery("SELECT
x FROM Table2");
// Now retrieve the column 1 results in 4 K
chunks:
byte buff = new byte[4096];
while (r.next()) {
Java.io.InputStream fin =
r.getAsciiStream(1);
for (;;) {
int size = fin.read(buff);
if (size == -1) { // at end of stream
break;
}
// Send the newly-filled buffer to some ASCII
output stream:
output.write(buff, 0, size);
}
}
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 JDBC NULL
Cuando se ha leido un JDBC NULL usando uno de
los métodos
ResultSet.getXXX, el método wasNull 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, getShort,
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 la 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 ésta 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.
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.
Recuperar datos de ResultSet
El objeto ResultSet proporciona varios métodos para
obtener los datos de columna correspondientes a un fila. Todos ellos tienen el
formato get<Tipo>, siendo <Tipo> un tipo de datos Java™. Algunos ejemplos de estos
métodos son getInt, getLong, getString, getTimestamp y getBlob. Casi todos
estos métodos toman un solo parámetro, que es el índice que la columna tiene
dentro del ResultSet o bien el nombre de la columna.
Las columnas de ResultSet están numeradas, empezando por
el 1. Si se emplea el nombre de la columna y hay más de una columna que tenga
ese mismo nombre en el ResultSet, se devuelve la primera. Algunos de los
métodos get<Tipo> tienen parámetros adicionales, como el objeto opcional
Calendar, que se puede pasar a los métodos getTime, getDate y getTimestamp.
Consulte el Javadoc del paquete java.sql para obtener todos los detalles.
En los métodos get que devuelven objetos, el valor de
retorno es null cuando la columna del ResultSet es nula. En tipos primitivos,
no puede devolverse null. En estos casos, el valor es 0 o false. Si una
aplicación debe distinguir entre null, y 0 o false, puede utilizarse el método
wasNull inmediatamente después de la llamada. A continuación, este método puede
determinar si el valor era un valor 0 o false real o si ese valor se ha
devuelto debido a que el valor de ResultSet era de hecho null.
Soporte de ResultSetMetaData
Cuando se llama al método getMetaData en un objeto
ResultSet, el método devuelve un objeto ResultSetMetaData que describe las
columnas de ese objeto ResultSet. En los casos en que la sentencia SQL que se
va a procesar no se conoce hasta el momento de la ejecución, puede utilizarse
ResultSetMetaData para determinar cuál de los métodos get hay que emplear para
recuperar los datos. El ejemplo de código siguiente utiliza ResultSetMetaData
para determinar cada uno de los tipos de columna del conjunto de resultados.
ResultSet rs = stmt.executeQuery(sqlString);
ResultSetMetaData rsmd = rs.getMetaData();
int colType [] = new int[rsmd.getColumnCount()];
for (int idx = 0, int col = 1; idx < colType.length; idx++, col++)
colType[idx] = rsmd.getColumnType(col);
Características de ResultSet
Este tema trata de las características de los ResultSets,
como son los tipos de ResultSet, la concurrencia, la capacidad para cerrar el
ResultSet comprometiendo el objeto conexión, y la especificación de las
características de ResultSet.
Por defecto, el tipo de todos los ResultSets creados es
solo de reenvío, la concurrencia es solo de lectura y los cursores se retienen
en los límites del compromiso. Una excepción de ello la presenta WebSphere, que
actualmente cambia el valor predeterminado de la capacidad de retención de
cursores para que los cursores se cierren implícitamente al comprometerse.
Estas características pueden configurarse mediante los métodos accesibles en
objetos Statement, PreparedStatement y CallableStatement.
Tipos de ResultSet
El tipo de un ResultSet especifica los siguiente acerca
del ResultSet:
·
Si
el ResultSet es desplazable.
·
Los
tipos de los ResultSets de Java™ Database Connectivity (JDBC) definidos por
constantes en la interfaz ResultSet.
Las definiciones de estos tipos de ResultSet son las
siguientes:
TYPE_FORWARD_ONLY
Un cursor que solo
puede utilizarse para procesar desde el principio de un ResultSet hasta el
final del mismo. Este es el tipo por omisión.
TYPE_SCROLL_INSENSITIVE
Un cursor que se
puede emplear para desplazares a través de un ResultSet. Este tipo de cursor es
insensible a los cambios efectuados en la base de datos mientras está abierto.
Contiene filas que satisfacen la consulta cuando esta se procesa o cuando se
extraen datos.
TYPE_SCROLL_SENSITIVE
Un cursor que puede
utilizarse para el desplazamiento en diversas formas a través de un ResultSet.
Este tipo de cursor es sensible a los cambios efectuados en la base de datos
mientras está abierto. Los cambios en la base de datos tienen un impacto
directo sobre los datos del ResultSet.
Los ResultSets de JDBC 1.0 son siempre solo hacia
adelante. Los cursores desplazables se añadieron en JDBC 2.0.
Nota: las propiedades de agrupación por
bloques habilitada y de conexión de tamaño de bloque afectan al grado de
sensibilidad de un cursor TYPE_SCROLL_SENSITIVE. La agrupación por bloques
mejora el rendimiento al almacenar en caché datos de la propia capa del
controlador JDBC.
Concurrencia
La concurrencia determina si el ResultSet puede
actualizarse. Los tipos se definen de nuevo mediante constantes de la interfaz
ResultSet. Los valores de concurrencia disponibles son los siguientes:
CONCUR_READ_ONLY
Un ResultSet que solo
puede utilizarse para leer datos de la base de datos. Este es el valor
predeterminado.
CONCUR_UPDATEABLE
Un ResultSet que
permite efectuar cambios en el mismo. Estos cambios pueden colocarse en la base
de datos subyacente.
Los ResultSets de JDBC 1.0 son siempre solo hacia
adelante. Los ResultSets actualizables se añadieron en JDBC 2.0.
Nota: Según
la especificación JDBC, el controlador JDBC puede cambiar el tipo de ResultSet
del valor de concurrencia de ResultSet si los valores no pueden utilizarse
conjuntamente. En tales casos, el controlador JDBC sitúa un aviso en el objeto
Connection.
Existe una situación en la que la aplicación especifica
un ResultSet TYPE_SCROLL_INSENSITIVE, CONCUR_UPDATEABLE. La insensibilidad se
implementa en el motor de bases de datos efectuando una copia de los datos. A
continuación, no se permite al usuario realizar actualizaciones mediante esa
copia en la base de datos subyacente. Si especifica esta combinación, el
controlador cambia la sensibilidad a TYPE_SCROLL_SENSITIVE y crea el aviso, que
indica que la petición se ha cambiado.
Capacidad de retención
La característica de capacidad de retención determina si
la llamada al compromiso en el objeto Connection cierra el ResultSet. La API de
JDBC destinada a trabajar con la característica de capacidad de retención es
nueva en la versión 3.0. Sin embargo, el controlador JDBC nativo ha
proporcionado una propiedad de conexión para varios releases que le permite
especificar ese valor predeterminado para todos los ResultSets creados bajo la
conexión. El soporte de API altera temporalmente cualquier valor de la
propiedad de conexión. Los valores de la característica de capacidad de
retención se definen mediante constantes de ResultSet y son los siguientes:
HOLD_CURSOR_OVER_COMMIT
Todos los cursores
abiertos permanecen así cuando se llama a la cláusula commit. Este es el valor
predeterminado del controlador JDBC nativo.
CLOSE_CURSORS_ON_COMMIT
Todos los cursores
abiertos se cierran cuando se llama a la cláusula commit.
Nota: Al llamar a la
retrotracción en una conexión, siempre se cierran todos los cursores abiertos.
Este es un hecho poco conocido, pero es una forma común de que las bases de
datos manejen los cursores.
Según la especificación JDBC, el valor predeterminado de
la capacidad de retención está definida por la implementación. Algunas
plataformas optan por utilizar CLOSE_CURSORS_ON_COMMIT como valor
predeterminado. Esto no representa generalmente un problema para la mayoría de
las aplicaciones, pero el usuario debe estar al corriente de lo que realiza el
controlador que utiliza si está trabajando con cursores en los límites del
compromiso. El controlador JDBC de IBM® Toolbox para Java también utiliza el
valor predeterminado de HOLD_CURSORS_ON_COMMIT, pero el controlador JDBC de UDB
para Windows NT® tiene el valor predeterminado CLOSE_CURSORS_ON_COMMIT.
Especificar características de ResultSet
Las características de un ResultSet no cambian una vez
que se ha creado el objeto ResultSet. Por tanto, las características se han especificado
antes de crear el objeto. Puede especificar estas características mediante
variantes cargadas a posteriori de los métodos createStatement,
prepareStatement y prepareCall.
Nota: Existen
métodos de ResultSet para obtener el tipo de ResultSet y la concurrencia del
ResultSet, pero no existe ningún método para obtener la capacidad de retención
del ResultSet.
·
Ejemplo: ResultSets
sensibles e insensibles
El ejemplo siguiente muestra la diferencia entre los ResultSets sensibles y los insensibles cuando se insertan filas en una tabla.
El ejemplo siguiente muestra la diferencia entre los ResultSets sensibles y los insensibles cuando se insertan filas en una tabla.
·
Ejemplo: sensibilidad
de ResultSet
El ejemplo siguiente muestra cómo un cambio puede afectar a una cláusula where de una sentencia SQL en función de la sensibilidad del ResultSet.
El ejemplo siguiente muestra cómo un cambio puede afectar a una cláusula where de una sentencia SQL en función de la sensibilidad del ResultSet.
Interfaz
java.sql.ResultSet
Interfaz pública ResultSet
Un ResultSet proporciona acceso a una tabla de datos generados al
ejecutar un Statement. Las filas de la tabla se recuperan en secuencia. Dentro
de una fila se puede acceder a sus valores de columna en cualquier orden.
Un ResultSet mantiene un cursor que apunta a su fila actual de datos.
Inicialmente el cursor se coloca antes de la primera fila. El método
'siguiente' mueve el cursor a la siguiente fila.
Los métodos getXXX recuperan los valores de columna de la fila actual.
Puede recuperar valores utilizando el número de índice de la columna o
utilizando el nombre de la columna. En general, utilizar el índice de columna
será más eficiente. Las columnas se numeran desde 1.
Para una portabilidad máxima, las columnas ResultSet dentro de cada fila
se deben leer en orden de izquierda a derecha y cada columna debe leerse una
sola vez.
Para los métodos getXXX, el controlador JDBC intenta convertir los datos
subyacentes en el tipo Java especificado y devuelve un valor Java adecuado.
Consulte la especificación JDBC para las asignaciones permitidas de tipos SQL a
tipos Java con los métodos ResultSet.getXXX.
Los nombres de columna utilizados como entrada para los métodos getXXX
son insensibles a mayúsculas y minúsculas. Al realizar un getXXX usando un
nombre de columna, si varias columnas tienen el mismo nombre, se devolverá el
valor de la primera columna coincidente. La opción de nombre de columna está
diseñada para utilizarse cuando se utilizan nombres de columna en la consulta
SQL. Para las columnas que no están explícitamente nombradas en la consulta, es
mejor utilizar números de columna. Si se usaron nombres de columna, no hay
forma de que el programador garantice que se refieren realmente a las columnas
previstas.
Un ResultSet se cierra automáticamente por la instrucción que lo generó
cuando se cierra, se vuelve a ejecutar o se utiliza para recuperar el resultado
siguiente de una secuencia de resultados múltiples.
El número, los tipos y las propiedades de las columnas de un ResultSet
son proporcionados por el objeto ResulSetMetaData devuelto por el método
getMetaData.
Propiedades del objeto
ResultSet
MaxMultiLineTextLength
Descripción
Obtiene o establece el límite actual
de datos que se pueden capturar para un campo de texto de varias líneas.
Es útil si los resultados incluyen uno
o más campos que contienen una entrada de texto larga, de varias líneas, y
existe la posibilidad de que al capturar los datos se produzca un
desbordamiento del espacio de almacenamiento intermedio. También resulta útil
si se desea examinar los resultados y obtener mejor rendimiento.
De forma predeterminada, no existe
límite para la longitud de los datos obtenidos de un campo de texto de varias
líneas.
Puede restablecer el valor
predeterminado estableciendo el parámetro de longitud en cero (0).
El límite se aplica a los campos de
serie cortos así como también a los campos de texto de varias líneas. Un campo
de serio corto puede tener 254 caracteres, de forma que puede establecer un
límite para ello.
Sintaxis
resultset.
MaxMultiLineTextLength
resultset.MaxMultiLineTextLengthmax_length
Perl
$
resultset->
GetMaxMultiLineTextLength();
$
resultset->
SetMaxMultiLineTextLength(
$max_length);
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
max_length
Un valor Long que
especifica la longitud máxima actual en bytes de datos obtenidos de un campo de
texto de varias líneas.
Valor de retorno
Devuelve un valor
Long que contiene la longitud máxima actual en bytes de datos obtenidos de un
campo de texto de varias líneas.
Ejemplo
Perl
$queryDefObj = $SessionObj->BuildQuery("Defect");
$queryDefObj->BuildField("description");
$queryDefObj->BuildField("id");
$resultSetObj = $SessionObj->BuildResultSet($queryDefObj);
$resultSetObj->SetMaxMultiLineTextLength(5);
# Not setting the above max multiline text length
# or setting it to 0 will fetch the entire data of
# the long varchar column
$resultSetObj->Execute();
$status = $resultSetObj->MoveNext();
$i=0;
while ($status == 1) {
$xnote = $resultSetObj->GetColumnValue(1);
print $i++,". desc=",$xnote,"\n";
$entyObj = $SessionObj->GetEntity( "defect",
$resultSetObj->GetColumnValue(2));
$SessionObj->EditEntity($entyObj,"modify");
$entyObj->SetFieldValue("headline","testXXX".($i));
$retval = $entyObj->Validate();
$entyObj->Commit();
$status = $resultSetObj->MoveNext();
}
BuildResultSet
Descripción
Crea y devuelve un conjunto de
resultados que se puede utilizar para ejecutar una consulta.
Este método crea un objeto ResultSet
para el objeto QueryDef especificado. A continuación, se puede utilizar el
objeto ResultSet devuelto para ejecutar la consulta y almacenar los datos
resultantes.
No llame a este método hasta que haya
añadido todos los campos y los filtros que desea al objeto QueryDef. Este
método utiliza la información del objeto QueryDef para compilar el conjunto de
estructuras de datos que se necesitan para almacenar los datos de la consulta.
Si añade nuevos campos o filtros al objeto QueryDef después de llamar a este
método, el objeto ResultSet no refleja las nuevas adiciones. Para ejecutar la
consulta y captar los datos resultantes, se debe llamar posteriormente a Execute del objeto ResultSet.
Nota: Para obtener el
objeto QueryDef que pasa a este método, se debe llamar al método BuildQuery . Para construir un
objeto ResultSet directamente de una serie de consulta SQL sin formato, utilice
el método BuildSQLQuery.
Para ver un ejemplo de cómo utilizar
BuildResultSet, consulte Ejecución de una consulta que tiene
filtros dinámicos.
Sintaxis
session.
BuildResultSet(
querydef)
Perl
$
session->
BuildResultSet($
querydef);
Identificador
Descripción
session
El objeto Session que
representa la sesión de acceso a la base de datos actual.
querydef
Valor de retorno
Ejemplos
VBScript
set sessionObj = GetSession
' Create a query and result set to search for all records.
set queryDefObj = sessionObj.BuildQuery("defect")
queryDefObj.BuildField("id")
set resultSetObj = sessionObj.BuildResultSet(queryDefObj)
resultSetObj.Execute
Perl
$sessionObj = $entity->GetSession();
# Create a query and result set to search for all records.
$queryDefObj = $sessionObj->BuildQuery("defect");
$queryDefObj->BuildField("id");
$resultSetObj = $sessionObj->BuildResultSet($queryDefObj);
$resultsetObj->Execute();
MaxResultSetRows
Descripción
Establece o devuelve el límite inicial
sobre el número de registros devuelto en un conjunto de resultados.
El valor de MaxResultSetRows es el
valor del límite inicial que limita el número de filas en ResultSet. Los
clientes pueden alterar temporalmente el límite inicial, siempre que el valor
del límite inicial no sea menor que el límite final o absoluto. Cuando el valor
de MaxResultSetRows es 0, se utiliza el límite absoluto.
Nota: Este método estuvo
disponible en la versión 7.1.
Sintaxis
resultset.
MaxResultSetRows
resultset.MaxResultSetRowslimit
Perl
$
resultset->
GetMaxResultSetRows();
$
resultset->
SetMaxResultSetRows($
limit);
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
limit
Un valor Long que
especifica el límite de filas devueltas en ResultSet.
Valor de retorno
Devuelve un valor Long
que contiene el límite para el número de filas devueltas en ResultSet.
Ejemplo
Perl
# limit a ResultSet to 10000 rows
my $CQWorkSpace = $CQSession->GetWorkSpace();
my $qry = $CQWorkSpace->GetQueryDef("Public Queries/Some Big Query");
my $ResultSet = $CQSession->BuildResultSet($qry);
$ResultSet->SetMaxResultSetRows(10000);
$ResultSet->Execute();
GetQueryLimit
Descripción
Devuelve un conjunto
de límite de consulta inicial o final para la sesión.
- El límite
absoluto es el límite de consulta absoluto que está establecido para la
sesión.
- El límite
inicial es el límite que está establecido para la sesión. El límite de
consulta inicial lo establece SetMaxResultSetRows. Este valor no puede ser
mayor que el límite de consulta final.
El argumento QUERY_LIMIT_TYPE no es una enumeración QueryLimitType con el valor de SOFT_QUERY_LIMIT o HARD_QUERY_LIMIT.
Nota: Este método estuvo
disponible en la versión 7.1.
Sintaxis
resultset.GetQueryLimitQUERY_LIMIT_TYPE
Perl
$
resultset->
GetQueryLimit(
$QUERY_LIMIT_TYPE);
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
QUERY_LIMIT_TYPE
Un valor Long que
especifica el tipo de límite de consulta para las filas devueltas en ResultSet.
Valor de retorno
Devuelve un valor
Long que contiene el límite de consulta inicial o final.
ResultSetIsLimited
Descripción
Devuelve un valor Long que indica si
el conjunto de resultados está limitado. Devuelve el número de filas que se van
a devolver si la ejecución del objeto ResultSet object está limitada o 0 (zero)
si no está limitada.
Este método está disponible después de
una llamada al método Execute del objeto ResultSet y puede
utilizarse con los métodos EnableRecordCount y GetRecordCount.
Nota: Este método estuvo
disponible en la versión 7.1.
Sintaxis
resultset.
ResultSetIsLimited
Perl
$
resultset->
ResultSetIsLimited();
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
Valor de retorno
Devuelve un valor
Long que representa el número de filas al que está limitado el objeto
ResultSet; devuelve 0 (cero) si ResultSet no está limitado.
Ejemplo
Perl
# Alert the caller about the data truncation:
$ResultSet->EnableRecordCount();
$ResultSet->Execute();
My $limited_rs = $ResultSet->ResultIsLimited();
My $recs = $ResultSet->GetRecordCount();
If ($limites_rs) print "ResultSet limited to $recs rows!\n";
RecordCount
Descripción
Devuelve el recuento de registros (número
de filas) del conjunto de resultados.
Para obtener un recuento de registros,
en primer lugar debe utilizar EnableRecordCount para habilitar el recuento de filas y,
a continuación, debe llamar a RecordCount (GetRecordCount, para Perl) para
obtener el número de registros.
Sintaxis
resultset.
RecordCount
Perl
$
resultset->GetRecordCount();
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
Valor de retorno
Un valor Long que
contiene el número de registros del conjunto de resultados.
Ejemplo
Set ResultSet = cqSession.BuildResultSet(qrydef)
ResultSet.EnableRecordCount
ResultSet.Execute
count = ResultSet.RecordCount
EnableRecordCount
Descripción
Habilita el recuento de registros para
el conjunto de resultados.
Para obtener un recuento de registros,
en primer lugar se debe utilizar EnableRecordCount para habilitar el recuento
de filas y, a continuación, se debe llamar a RecordCount para obtener el número de registros.
Utilice este método después de definir el objeto ResultSet, pero antes de
ejecutarlo.
Sintaxis
resultset.
EnableRecordCount
Perl
$
resultset->
EnableRecordCount();
Identificador
Descripción
resultset
Un objeto ResultSet
que representa las filas y las columnas de datos resultantes de una consulta.
Valor de retorno
Ninguno.
Ejemplo
Set ResultSet = cqSession.BuildResultSet(qrydef)
ResultSet.EnableRecordCount
ResultSet.Execute
count = ResultSet.RecordCount
Perl
$resultset->EnableRecordCount();
$resultset->Execute();
$rows = $resultset->GetRecordCount();
EJEMPLO
Ejemplo: interfaz ResultSet
Este es un ejemplo de cómo utilizar la interfaz
ResultSet.
Nota: Al
utilizar los ejemplos de código, acepta los términos de: Información
sobre licencia de código y exención de responsabilidad.
import java.sql.*;
/**
ResultSetExample.java
Este programa muestra la utilización de ResultSetMetaData y
ResultSet para visualizar todos los datos de una tabla aunque
el programa que obtiene los datos no sabe cuál es el aspecto
que tendrá la tabla (el usuario pasa los valores correspondientes
a la tabla y a la biblioteca).
**/
public class ResultSetExample {
public static void main(java.lang.String[] args)
{
if (args.length != 2) {
System.out.println("Uso: java ResultSetExample <biblioteca> <tabla>");
System.out.println(" siendo <biblioteca> la biblioteca que contiene la <tabla>");
System.exit(0);
}
Connection con = null;
Statement s = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
// Obtener una conexión a base de datos y preparar una sentencia.
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
con = DriverManager.getConnection("jdbc:db2:*local");
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM " + args[0] + "." + args[1]);
rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
int rowCount = 0;
while (rs.next()) {
rowCount++;
System.out.println("Datos para la fila " + rowCount);
for (int i = 1; i <= colCount; i++)
System.out.println(" Fila " + i + ": " + rs.getString(i));
}
} catch (Exception e) {
// Manejar los errores.
System.out.println("Tenemos un error... ");
e.printStackTrace();
} finally {
// Hay que asegurarse de que siempre se haga
// el borrado. Si la conexión se cierra, la
// sentencia que hay debajo de ella también se cerrará.
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println("Error grave: no se puede cerrar el objeto conexión");
}
}
}
}
}
EJEMPLO LLENAR UN JTABLE CON
RESULTSET
"Si
usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook
que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y
también comentenos que tal les pareció el tutorial"
1. ENTORNO
- JDK 6 Update 21
- Netbeans 6.9.1
- MySQL 5.1.
2. INTRODUCCIÓN
Lo que se desea demostrar en este tutorial es como mostrar los datos de una consulta en un JTable. Haciendo uso de la clase ResultSetMetaData que nos brinda la información de una tabla de la base de datos y la clase ResultSet que nos devuelve la data producto de una consulta hacia la base de datos.
3. DESARROLLO
3.1. Crear el proyecto
Primero debemos de crear un proyecto en Netbeans para eso nos vamos a "File->New Project" y seleccionamos la opción de crear un "Java Application"
Y como nombre al proyecto le ponemos "LlenarJTable"
Al proyecto debemos de agregar un formulario (JFrameForm) que lo llamaremos "frmLlenarJtable". Para hacemos clic derecho en el paquete que se llama "llenarjtable" de ahí seleccionamos New y elegimos "JFrame Form"
3.2. Diseño del Formulario
Debemos de diseñar el siguiente formulario:
Donde:
El JTextBox: Recibe el nombre de txtQuery
El JTable: Recibe el nombre de jtQuery
El JButton: Recibe el nombre de btnConsultar
3.3. Crear base de datos en MySQL
Debemos de crear una base de datos en MySQL. A la base de la llamaremos "bdproductos" y también crearemos una tabla que se llamara "producto"
3.4. Codificando el action del botón "Consultar"
Debemos de codificar la acción del botón "Consultar" que va a llenar al JTable con la data producto de la consulta que vamos a hacer a la base de datos bdproductos que esta en MySQL. No olvidar agregar el conector al Netbeans para poder comunicarnos con MySQL.
Para ir a la Action del botón debemos hacer clic derecho en el botón de ahí seleccionamos Events, luego Action y finalmente ActionPerformed
Y luego dentro de ese evento ponemos el siguiente codigo
try {
//Para establecer el modelo al JTable
DefaultTableModel modelo = new DefaultTableModel();
this.jtQuery.setModel(modelo);
//Para conectarnos a nuestra base de datos
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdproductos", "usuario", "clave");
//Para ejecutar la consulta
Statement s = conexion.createStatement();
//Ejecutamos la consulta que escribimos en la caja de texto
//y los datos lo almacenamos en un ResultSet
ResultSet rs = s.executeQuery(txtQuery.getText());
//Obteniendo la informacion de las columnas que estan siendo consultadas
ResultSetMetaData rsMd = rs.getMetaData();
//La cantidad de columnas que tiene la consulta
int cantidadColumnas = rsMd.getColumnCount();
//Establecer como cabezeras el nombre de las colimnas
for (int i = 1; i <= cantidadColumnas; i++) {
modelo.addColumn(rsMd.getColumnLabel(i));
}
//Creando las filas para el JTable
while (rs.next()) {
Object[] fila = new Object[cantidadColumnas];
for (int i = 0; i < cantidadColumnas; i++) {
fila[i]=rs.getObject(i+1);
}
modelo.addRow(fila);
}
rs.close();
conexion.close();
} catch (Exception ex) {
ex.printStackTrace();
}
4. EJEMPLO DE LA APLICACIÓN
Sin
poner etiquetas a la consulta
Con etiquetas a la consulta
RESUMEN
CLASE RESULTSET
Un Result Set 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 metodos get que
permiten el acceso a las diferentes columnas de las filas.
El metodo Result Set.next se
usa para moverse a la siguiente fila del result set,convirtiendo a esta 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.
El siguiente fragmento de
codigo es un ejemplo de la ejecucion de una sentencia SQL que devolvera una
coleccion de filas, con la columna 1 como un int, la columna 2 como una String
y la columna 3 como un array de bytes: Un Result Set mantiene un cursor que
apunta a la fila actual de datos.
COLUMNAS
Puede usarse o bien el
nombre de la columna o el numero de columna para Notese que las columnas se
numeran de izquierda a derecha comenzando con la La opcion de usar el nombre de
columna fue provista para que el usuario que especifica nombres de columnas en
una query pueda usar esos nombres como especifica nombres de columnas , deben
usarse los numeros de columna.
Tipos de datos y
conversiones.
Para los metodos get XXX, el
driver JDBC intenta convertir los datos subyacentes a Datos de la base de datos
en la base subyacente es VARCHAR, el driver JDBC Una x indica un metodo get XXX
legal para un tipo de dato particular.
El metodo get Object
devolvera cualquier tipo de dato como un Object Java y es util
Uso de Streams valores muy
grandes de filas
Result Set hace posible el
recuperar datos arbitrariamente grandes de tipo Esto se hace mediante la clase
Result Set que devuelve streams Get Binary Stream devuelve una corriente que
simplemente suminiistra Get Ascii Stream devuelve una corriente con caracteres
ASCII Get Unicode Stream devuelve una corriente con caracteres Unicode 1 de 2
Result sets opcionales o
múltiples.
Circunstancias una
aplicacion puede no saber si una sentencia devolvera un result Almacenados
pueden devolver varios result sets y/o update counts.
Arbitraria de result sets y
update counts.
Recuperar datos de ResultSet
El objeto Result Set
proporciona varios métodos para obtener los datos de columna correspondientes a
un fila.
Todos ellos tienen el
formato get, siendo un tipo de datos Java .
Casi todos estos metodos
toman un solo parámetro, que es el indice que la columna tiene dentro del
Result Set o bien el nombre de la columna.
En los metodos get que
devuelven objetos, el valor de retorno es null cuando la columna del Result Set
es nula.
En tipos primitivos, no
puede devolverse null.
Características de ResultSet
Este tema trata de las
caracteristicas de los Result Sets, como son los tipos de Result Set, la
concurrencia, la capacidad para cerrar el Result Set comprometiendo el objeto
conexion, y la especificacion de las caracteristicas de Result Set. El tipo de
un Result Set especifica los siguiente acerca del Result Set: Un cursor que se
puede emplear para desplazares a traves de un Result Set. Este tipo de cursor
es insensible a los cambios efectuados en la base de datos mientras esta
abierto.
Un cursor que puede
utilizarse para el desplazamiento en diversas formas a traves de un Result Set.
Este tipo de cursor es sensible a los cambios efectuados en la base de datos
mientras esta abierto.
Nota: Segun la
especificacion JDBC, el controlador JDBC puede cambiar el tipo de Result Set
del valor de concurrencia de Result Set si los valores no pueden utilizarse
conjuntamente.
Propiedades del objeto
ResultSet
$result Set Obj = $Session Obj->Build
Result Set ; Este metodo crea un objeto Result Set para el objeto Query Def
especificado.
Si anade nuevos campos o
filtros al objeto Query Def despues de llamar a este metodo, el objeto Result
Set no refleja las nuevas adiciones. set query Def Obj = session Obj.Build
Query Def Obj.Build Field set result Set Obj = session Obj.Build Result Set
SUMMARY
RESULTSET CLASS
A Result Set contains all
the rows that satisfy the conditions of an SQL statement and provides access to
the data in these rows using a set of get methods that allow access to the
different columns of the rows.
The Result Set.next method
is used to move to the next row of the result set, making it the current row.
The general format of a
result set is a table with column headers and the corresponding values
returned by the query.
The following code fragment
is an example of executing an SQL statement that will return a collection of
rows, with column 1 as an int, column 2 as a String, and column 3 as an array
of bytes: A Result Set holds A cursor pointing to the current row of data.
COLUMNS
You can either use the name
of the column or the number of column for Notese that the columns are numbered
from left to right beginning with the option to use the column name was
provided so that the user who specifies column names in a query You can use
those names as you specify column names, column numbers must be used.
Data types and conversions.
For get XXX methods, the
JDBC driver attempts to convert the underlying data to Database Data on the
underlying base is VARCHAR, the JDBC driver A x indicates a legal XXX get
method for a particular data type.
The method get Object will
return any type of data as an Object Java and is useful
Using Streams very large
values of rows
Result Set makes it possible
to retrieve arbitrarily large data of type This is done by class Result Set
that returns streams Get Binary Stream returns a stream that simply suminiistra
Get Ascii Stream returns a stream with ASCII characters Get Unicode Stream
returns a stream with Unicode characters 1 of 2
Optional or multiple result
sets.
Circumstances an application
may not know if a statement will return a result Stored can return several
result sets and / or update counts.
Arbitrary of result sets and
update counts.
Recover Data from ResultSet
The Result Set object
provides several methods for obtaining column data corresponding to a row.
They all have the get
format, being a Java data type.
Almost all of these methods
take a single parameter, which is the index that the column has within the
Result Set or the name of the column.
In get methods that return
objects, the return value is null when the Result Set column is null.
In primitive types, null can
not be returned.
Features of ResultSet
This topic deals with the
characteristics of Result Sets, such as Result Set types, concurrency, the
ability to close the Result Set by compromising the connection object, and
specifying the characteristics of the Result Set. The type of a Result Set
specifies the following about the Result Set: A cursor that can be used to move
through a Result Set. This type of cursor is insensitive to changes made in the
database while it is open.
A cursor that can be used
for scrolling in various ways through a Result Set. This type of cursor is
sensitive to changes made in the database while it is open.
Note: According to the JDBC
specification, the JDBC driver can change the Result Set type of the Result Set
concurrency value if the values can not be used together.
ResultSet object properties
$ Result Set Obj = $ Session
Obj-> Build Result Set; This method creates a Result Set object for the
specified Query Def object.
If you add new fields or
filters to the Query Def object after calling this method, the Result Set
object does not reflect the new additions. Set query Obj = session Obj.Build
Query Def Obj.Build Field set result Set Obj = session Obj.Build Result Set
RECOMENDACIÓN
·
Se le recomienda trabajar
con ResultSet dentro del (try/catch) por si algo va mal, la aplicación no detenga su ejecución de
manera brusca.
·
Cuando desarrollamos una
aplicación con JDBC, una de las tareas que programamos frecuentemente es pasar
un objeto de tipo ResultSet a una lista de objetos Map,
List<Map<String,Object>>.
En
conclusión
Como un elemento básico del
desarrollo de Java, la API JDBC es algo que todos los desarrolladores Java
deben conocer como la parte posterior de su mano. Lo curioso es que la mayoría
de los desarrolladores no se han mantenido al día con las mejoras de la API a
lo largo de los años, por lo que pierden los trucos de ahorro de tiempo
descritos en este artículo.
Si usted decide utilizar las
características más nuevas de JDBC, depende de usted, por supuesto. Un aspecto
clave a considerar será la escalabilidad del sistema en el que está trabajando.
Cuanto mayor sea la escala, más restringido será el uso de la base de datos y,
por lo tanto, más tendrá que reducir el tráfico de red en su contra. Rowsets,
llamadas escalares y actualizaciones por lotes serán tus amigos aquí. De lo
contrario, pruebe los ResultSets desplazables
y actualizables (que no consumen tanta memoria como los conjuntos de filas) y
mida el éxito de escalabilidad. Probablemente no será tan malo como usted
espera.
JDBC no sólo admite
conjuntos de resultados bidireccionales, sino que también admite
actualizaciones en sitio en ResultSets. Esto significa que en lugar de crear
una nueva instrucción SQL para cambiar los valores almacenados actualmente en
la base de datos, sólo puede modificar el valor contenido dentro del ResultSet
y se enviará automáticamente a la base de datos para esa columna de esa fila.
Pedir un ResultSet
actualizable es similar al proceso implicado en pedir un ResultSet desplazable.
De hecho, es donde usará el segundo parámetro para createStatement (). En lugar
de especificar ResultSet.CONCUR_READ_ONLY para el segundo parámetro, envíe ResultSet.CONCUR_UPDATEABLE.
Apreciación del equipo
este trabajo acerca de la
clase resul set nos ha permitido conocer bastante como por ejemplo Su sintaxis ,para que sirve,
también hemos que entendido Un Resultes
mantiene un cursor que apunta a la fila actual de datos y simpre se va a mover
hacia la fila siguiente cada ves que llamemos al método nex().
También hemos entendido, si
queremos obtener los datos de las columnas se llama al método getXXX se puede obtener los datos con el nombre de
la columna de la de nuestra base de datos o por el numero de la columna:
de la siguiente forma.
String s = rs.getString("title");
String s = rs.getString(2);
Bueno y por lo diremos que
esta clase Resultset es muy importante porque sin ella no podremos acceder a
los datos que se encuentran almacenados en nuestra base de datos
Glosario
de Términos
getInt: Recupera el valor
del parámetro designado como un valor int en el lenguaje de programación Java
según el nombre del parámetro.
Query: significa consulta.
Es decir, un query en base de datos es una búsqueda o pedido de datos
almacenados en una base de datos.
Array: son usados extensamente por los
programadores para contener listas de datos en la memoria DBMS:
"Database Management System" (DBMS) son un tipo de software muy específico,
dedicado a servir de interfaz entre la base de datos, el usuario y las
aplicaciones que la utilizan.
RecordCount: Devuelve el
recuento de registros (número de filas) del conjunto de resultados.
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
clearWarnings (): Borra
todos los avisos de la cadena.
getCursorName(): Obtiene el
nombre del cursor asignado a este ResultSet.
getWarnings (): Obtiene el primer aviso de la
cadena de avisos SQL producidos durante el trabajo con este ResultSet o null si
no hay ninguno. La cadena de avisos se renueva con cada fila.
clearWarnings(): Borra todos
los avisos de la cadena.
LINCOGRAFIA
Por si mas les interese este Proyecto acá los dejaré el link para sus respectivas diapositivas
http://es.slideshare.net/ErlinDarwinHerreraCieza/presentacin-result-set
espero sea de su agrado Gracias a todos
No hay comentarios:
Publicar un comentario