Esta no es una respuesta directa a su pregunta, pero tengo cierta experiencia en el uso de acceso aleatorio para blobs (grandes) en SQLite, y le aconsejo que no la use, si puede. He aquí por qué:
Las manchas rompen por completo el formato de consulta SQL. Si los datos de su blob necesitan algún tipo de procesamiento, en algún momento será necesario filtrarlos. Cualquier mecanismo que tenga en su lugar para lidiar con el filtrado en SQL será inútil en este sentido.
El tratamiento de blobs binarios envueltos en bases de datos opuestas a datos binarios en archivos sin formato limita sus opciones. No podrá leer y escribir aleatoriamente datos al mismo tiempo desde múltiples procesos, lo cual es posible con los archivos. No puede usar ninguna herramienta que maneje estos datos y proporciona solo una interfaz de E/S de archivos. No puede truncar o cambiar el tamaño del blob. Los archivos son simplemente mucho más versátiles.
Puede parecer conveniente tener todo contenido en un archivo, ya que simplifica la copia de seguridad y la transferencia, pero el dolor de trabajar con blobs simplemente no lo vale.
Así que como su abogado, le aconsejo que escriba sus blobs como archivos sin procesar en el sistema de archivos, y simplemente almacene una referencia al nombre del archivo en su base de datos. Si tus blobs son bastante pequeños y tienes la garantía de que no crecerán, olvida mi consejo.
Bueno, la mancha puede crecer ocasionalmente , pero eso es durante una actualización completa de los servicios, por lo que es "seguro" decir que son de longitud constante dentro de un "ciclo de producto" (sin importar qué tan largo o corto sea) –
Pero estoy totalmente de acuerdo con cada palabra que dices , Preferiría realmente evitar los blobs, pero debido a la forma en que se diseñan las especificaciones, no tengo otra opción:/ –
Thumbs up. Él va a necesitar muchos consejos legales antes de que esto termine. : P – Cray