FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
ADOTable: Refresh tarda mucho luego de un borrado
Buenas tardes colegas.
Estoy diseñando un sistema hospitalario en Delphi7 con base de datos SQL Server 2012. Sucede que siempre he utilizado el botón eliminar con este código con poco registros:
Hoy terminé de cargar una data de 7000 registros a una tabla y al comenzar a probar los botones de nuevo, editar, guardar y eliminar, me dí cuenta que cuando le dí a eliminar duró un aproximado de 7 segundos para eliminarlo. Yo estoy utilizando los componentes ado para conectarme. Luego probé el boton eliminar de esta manera y se eliminó al instante.
En este sentido requiero de sus conocimientos para que me expliquen la razón de esto y si es posible me orienten sobre la mejor manera de eliminar un registro. Nota: La tabla tiene indices en cada uno de los campos ya que se realiza una busqueda avanzada por cada campo de la tabla. Saludos.
__________________
Cristo te ama, ven a d él, ya k te espera con los brazos abiertos. Dios te bendiga mucho |
#2
|
||||
|
||||
Hola jeremiselxi.
¿ De que forma tenes organizado el acceso a tus datos que requieren un Refresh ? Saludos Nota: Modifiqué el título original (Pregunta Curiosa sobre el botón eliminar) por que la consulta no es hacerca del botón
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
¿La tabla en cuestión tiene índices y clave primaria?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Cita:
Disculpen que no pude responder hasta ahora. Le explico un poco mejor lo que tengo Y lo explicaré con el modulo de administración de usuaríos. De esta manera están todos Los módulos. Al dar clic al modulo de administración de usuarios aparece un formulario con los botones nuevo, editar, eliminar exportar y buscar. Los datos en esta ventana se muestran mediante un adoquery, para poder buscar de todas las maneras posible y así exportar lo que quieran. Existe un campo llamado No. El cual es el campo utilizado como primario. En ese sentido para eliminar lo que hago es que busco en la tabla de usuario mediante locale por el campo No del adoquery. Luego si le hago el delete solamente, a veces sucede que al hacer el select * from usuarios en el quuery, toma también ese registro que le di a borrar. Por eso es que.le.hago el Refresh. Si el campo primario es el no ya que es un número que no se repite y es autoincremental. Los demás campos tienen índices para buscar más rápido en la.bd. Saludos
__________________
Cristo te ama, ven a d él, ya k te espera con los brazos abiertos. Dios te bendiga mucho |
#5
|
||||
|
||||
Hola jeremiselxi.
Por el nombre, "adotabla", pensé que se trataba de un TADOTable no de un TADOQuery. Para optimizar la velocidad de la acción veo estas opciones:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
Yo le prestaria atencion al punto numero 1 de lo que te recomendo ecfisa
Piensa en algo, en este mismo foro, los temas estan filtrados (ves solamente los mas recientes, no los de el año 2000 [al menos por defecto]) Y luego ademas de eso tambien estan paginados, para que salgan 30, 40, 50 lo que sea por pagina. Si fueran 5000 por pagina el rendimiento seria menor, aunque tengas todos los indices y claves primarias que quieras Google hace lo mismo y te va tirando resultados en paginas para que no sea tanta la informacion a mandar de golpe. En paginas como facebook o youtube pasa algo similar, a medida que se va haciendo scroll hacia abajo salen mas comentarios o publicaciones No me parece nada sano mostrar 7000 registros cuando deberia ser de a 100.. etc. Deberias enfocarte a que el usuario lance busquedas mas especificas (o acaso en google le pones un * y te trae toda la web?) es decir si buscas pacientes, que te tiren al menos un rubro, un nombre o apellido, etc Recuerdo al compañero mamcx que expuso un truco muy bueno que era guardarse la inicial de cada persona en un campo aparte y antes de hacer el tipico "WHERE NOMBRE LIKE Rob%" queda algo como "WHERE INICIAL = R AND NOMBRE LIKE ROB%" |
#7
|
||||
|
||||
Cita:
__________________
Cristo te ama, ven a d él, ya k te espera con los brazos abiertos. Dios te bendiga mucho |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Aplicación en Windows 7 64 bits tarda mucho en arrancar | jupehe | Conexión con bases de datos | 2 | 26-07-2014 10:56:11 |
Tarda mucho el UPDATE a MySQL | b1ast3r | Conexión con bases de datos | 2 | 13-10-2010 19:34:56 |
Tarda mucho en ejecutar un SP | Choclito | Firebird e Interbase | 29 | 13-08-2010 17:02:46 |
Form que se tarda mucho en abrir | IVAND | Varios | 3 | 29-05-2007 02:14:07 |
Por que tarda mucho en abrir un EXE | IcebergDelphi | Varios | 5 | 16-06-2004 11:05:28 |
|