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)
-   -   registros que no se ven en ado (https://www.clubdelphi.com/foros/showthread.php?t=20203)

joanajj 08-04-2005 12:31:16

registros que no se ven en ado
 
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

cosas que faltaron por decir
 
Solo tengo unas preguntas :D
:confused:
COMO CONSULTAS LOS DATOS?
:confused:
Estas actualizando los datos?

joanajj 08-04-2005 17:56:55

consulta de los datos
 
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

trata lo siguiente
 
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

tienes razón
 
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

bien si lo que quieres es eso
 
: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


La franja horaria es GMT +2. Ahora son las 02:05:23.

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