La Web del Programador: Comunidad de Programadores
 
    Pregunta:  15386 - FALLO DE BLOB EN UN DATA GRID
Autor:  Pedro Recuenco
Vereis, saco por un Data Grid, el resultado de una Data Query, sobre una tabla que tiene un campo MEMO ( o LONG ), si el resultado son X registros, puedo moverme perfectamente por el Grid con teclas ó con la barra lateral vertical, pero si pasa de X+, me sale el siguiente mensaje de error del BDEngine.
"Invalid BLOB handle in record buffer ". y se bloquea todo el grid, aunque nó el programa.
¿ Hay alguna forma de solucionar esto ?, supongo qeu el problema es que el datagrid no puede con tanta información y que no mantiene todo en memoria.
¿ Se puede cahcear a disco de alguna forma ?.
Gracias de antemano.
Para lo que gusteis, me encuentro en el departamento de informática del Centro Universitario Fº de Vitoria en Madrid.

  Respuesta:  Ernesto Valcarcel
hola

en el BDE Administrator debes incrementar el tamaño de
BLOB SIZE a 1000
y
BLOBS TO CACHE a 65000

siempre los pongo así.

es recomendado que lo cargues al disco como dices, pero es para no bloquear la tabla de donde lees.
lo puedes hacer capturando el evento AfterOpen que los controles TQuery, TTable y TStoredProc heredan de TDataSet, en este evento debes especificar tu_Query. FetchAll para cargar todos los record a tu disco. (o de esta forma general TBDEDataSet(DataSet).FetchAll para cualquiera de los tres controles)

saludos