Pregunta

¿Hay una manera de obtener sólo la longitud (en bytes) de un valor almacenado en BDB? No necesito toda la matriz de datos, sólo su tamaño.

¿Fue útil?

Solución

Si no quiere tener que recuperar toda la entrada y no está utilizando DPL, yo diría que se debe añadir un índice secundario en el tamaño de la matriz de bytes almacenados y asegurarse de que su DAO actualiza correctamente este valor en cualquier guardar o actualizaciones. Se podría añadir un KeyCreator que crea una clave size secundario en una base de datos secundaria basándose en el registro.

¿Qué tipo de consulta está tratando de llevar a cabo? ¿Está usted quiere buscar todos los registros de un determinado tamaño? ¿O que quieren saber el tamaño de un determinado registro antes de que lo recupere? Creo que la última pregunta es difícil de responder.

Otros consejos

Estoy asumiendo que usted está utilizando la versión JE (o la unión de Java de BDB), en cuyo caso, una vez que el DatabaseEntry de la tecla deseada, getSize () debe darle lo que quiere.

Si utiliza la unión C, echa un campo de tamaño del mango DBT.

Si almacena los ID de los documentos como elementos de datos duplicados, en lugar de como el valor de elemento de datos de una burbuja, entonces se puede utilizar DBC-> count () para detectar el número de documentos que coinciden sin llegar a recuperar la larga lista de identificadores. De lo contrario, la API de base de datos Berkeley no parece apoyar lo que está pidiendo (a pesar de que se podría pensar que podría ser eficaz para que agreguen él). Me interrogado sobre esto también, y esa fue la solución que se me ocurrió para mi propio proyecto.

para su problema, utilizando el indicador del ANG DB_DBT_PARTIAL solicitando el inicio del registro le proporcionará sus primeras identificaciones y la DBT.size puede ser utilizado para calcular el número total de documentos de identidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top