PDA

Ver la Versión Completa : registros que no se ven en ado


joanajj
08-04-2005, 12:31:16
Buenos días, en una aplicación hecha en delphi7 y con ADO, ocurre lo siguiente:

al grabar algún registro, luego lo intentas localizar y no aparece, pero al día siguiente sí, o por ej. tienes 5 apellidos santana, localizas y solo aparece uno.
Al crear un registro, se introducen los datos y en la opción grabar, tiene al final el post, así que no veo la razón a este problema. Eso sí, la tabla es de access y ya tiene unos 10.000 registros.
Sabe alguien cual puede ser el problema???


Gracias y saludos a todos...

Ryu
08-04-2005, 14:17:01
Solo tengo unas preguntas :D
:confused:
COMO CONSULTAS LOS DATOS?
:confused:
Estas actualizando los datos?

joanajj
08-04-2005, 17:56:55
Lo hago con Locate, y los visualizo con un dbgrid...

por ej. un tedit pongo un apellido, al pulsar una enter localizo con locate lo que esté escrito en ese edit y el cursor se situa en la primera correspondencia que encuentre y se visualiza en un dbgrid, pero el problema es que aparece cuando le dá la gana, si hay 5 por ej. santana, solo se vé uno y mañana se ven los cinco. No sé es raro, y no creo que 10000 registros para .MDB sea mucho...

Saludos...

Ryu
08-04-2005, 18:08:42
el locate solo se posiciona en un registro determinado
no filtra los registro para mostrar solo lo que coinciden
por ej
adotable1.locate('campo',parametro,[]);
que hara buscar la primera coincidencia
ahora biene mi respuesta
intenta con un tquery o un adoquery donde la
busqueda se debe hacer mediante sql.

joanajj
08-04-2005, 19:29:50
Efectivamente, tienes razón, y eso es realmente lo que quiero, que se posicione(con locate) en la primera coincidencia parcial que encuentre(pasándole el parametro lopartialkey). Hacerlo lo hace, pero cuando le dá la gana.

Vamos a ver, pongamos por ej. que tengo 4 1ºs apellidos, Santana, y yo busco santana, pues en el dbgrid aparecen, sin filtrar, ya que no quiero filtros, el primer registro que empieza por santana, y los otros tres siguientes:

santana perezsantana cruz
santana glez
santana díaz

pero al igual lo hago al día siguiente y no aparecen los cuatro sino que aparece solo uno, no sé si he logrado explicarlo, es como si hubieran desaparecido. Se ven todos los datos en el dbgrid y se posiciona en el primer santana, y los otros 3 no están, y a lo mejor por la tarde lo intento y si se muestran los otros tres. Es raro.

Gracias de nuevo...

Ryu
08-04-2005, 22:02:54
:cool: si lo que quieres es la primera coincidencia
entonces usa un 'like' (claro esto es dentro de una sentencia sql)
usa un adoquery
y usa lo siguiente sentencia en un adoquery
:D adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from tabla where campo like paramentro%');
adoquery1.execsql;
adoquery1.open;
:D
claro lo que hara es tomar la primera coincidencia con el parametro que le asignes. ahora si no tienes conocimiento de como hacerlo
solo dilo ahora