Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Uso del Locate (https://www.clubdelphi.com/foros/showthread.php?t=20529)

jzk 18-04-2005 17:49:33

Uso del Locate
 
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 :

Código:

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:

Cita:

"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;)


La franja horaria es GMT +2. Ahora son las 09:49:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi