PDA

Ver la Versión Completa : Uso del Locate


jzk
18-04-2005, 17:49:33
Hola a tod@s,

Veamos, tengo el siguiente problemilla;

Quiero posicionarme en un dbgrid en función del número escrito en una caja de texto.
Para ello utilizo :

If Not (Query1.Locate('codigo',edit1.text,[loCaseInsensitive])) Then
Query1.First

Si no encuentro el registro lo que hago es posicionarme al principio del dbgrid.
El problema me surge cuando sucede exactamente eso, es decir, que el valor buscado no exista y se posicione en el primer elemento, dandome el siguiente petardazo:

"Exception class EDBEngineError with message "Invalid Blob Handle in Record Buffer"
Lo curioso de todo es que este error sólo aparece cuando utilizo la función Locate, porque si en cualquier momento utilizo el comando Query1.First no tengo ningún problema.
Utilizo una base de datos Informix y en esta tabla tengo dos campos de tipo Blob que cuando no incluyo en la consulta Query1, pués efectivamente, no se produce el error.

Alguna ayuditaaaa please.....

marcoszorrilla
18-04-2005, 17:55:23
Por qué no pones una rejilla que visualice los datos para ver a donde va a parar el cursos cuando no encuentra nada, no será que se queda en BOF y por eso te da error?

Aunque estoy también pensando otra cosa, se pueden navegar los datos de forma bidirecccional?

Un Saludo.

jzk
18-04-2005, 18:04:36
Pués he comprobado donde se encuentra el cursor y está en el último registro de la tabla.

Respecto a si se puede navegar los datos de manera bidireccional, disculpa pero no entiendo a que te refieres. Podrías explicarmelo mejor, gracias.

marcoszorrilla
18-04-2005, 18:17:35
En un principio es una propiedad de la consulta, aunque en algunos motores simplemente no se deja navegar hacia atras.

Por si acaso, como Access suele dar este tipo de errores cuando no se tiene calve primaria definida, y por si puede aplicarse a tu caso, tienes una clave primaria en la tabla que se consulta?.

Un Saludo.

jzk
18-04-2005, 18:22:15
Siento decirte que no, por diversas razones/circunstancias la tabla se ha creado sin clave primaria.

marcoszorrilla
18-04-2005, 18:23:39
Pues creo que será conveniente crearla, pues en muchos casos el motor necesita ese clave para poder resposiconar el cursor en una fila determinada.

Un Saludo.

jzk
18-04-2005, 18:44:53
Esto es el cuento de nunca acabar.

He creado el campo como clave primaria y sigue dándome el mismo error.

federicowolf
19-04-2005, 17:18:50
hola, me parece que podrias intentar con esto:

abri el administrador del bde ,selecciona la base de datos que usas cuando te tira el error , y dentro de la solapa "definition" busca la propiedad "blobs to cache", ahi ponle como minimo 1000 y salva los cambios.

espero que te haya sido de utilidad, saludos.

jzk
22-04-2005, 13:05:03
Muahh, Muahh!! mil besos, no sabés la gran ayuda que acabas de prestarme.

Te debo una, GRACIAS. :D;)