FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Efectividad en Mysql
Estoy utilizando Delphi7 con Mydac y MySQL.
Estoy dandole de alta a registros de una tabla de esta manera.
Mi pregunta es : ¿ es efectivo esta manera de hacerlo y que si hay otra mejor cual seria ? . Gracias. Última edición por dec fecha: 06-12-2006 a las 09:23:32. |
#2
|
||||
|
||||
Oks, El uso de componentes TTable en aplicaciones cliente servidor (Igual para las locales) es una muy mala práctica pues afecta el rendimiento del equipo y de la red al tener que manejar todo el conjunto de datos a la vez (Imagina que la tabla crece hasta 200 000 registros). Por ello lo ideal es hacer uso de Procedimientos almacenados.
Ahora, si no es posible hacer uso de procedimientos almacenados, lo ideal es trabajar sobre un conjunto limitado de registros haciendo uso de objetos TQuery, esto mejorará el rendimiento de tu aplicación. Espero haberte ayudado con tu duda. Suerte |
#3
|
|||
|
|||
Yo utilizo TQuery y solo me gustaria saber si al hacer TQuery.Delete; ejecuta el TQuery.SQLDelete; es decir, la sentencia de sql que hay en esa propiedad.
|
#4
|
||||
|
||||
No estoy de acuerdo con Poliburro. Tiene razon en parte. Es perfectamente válido usar Insert, Post y Delete con componentes que accesan a tablas MySQL como es el caso. De hecho el componente que utilices (en tu caso MyDAC) se encarga de generar las setencias SQL necesarias para hacer la operación.
Lo que si es un hecho es que hay que tener cuidado con cuantos registros se van a traer por medio de un query. Si son solo unos cuantos no hay tanto problema pero cuidado cuando sean miles. Un truco que yo uso es tener un Query que me regrese una tabla vacía para hacer las inserciones. Así por ejemplo, si tengo una tabla clientes, uso un TZQuery (yo uso Zeos, pero es igual para otros componentes) y le pongo la sentencia SQL : select * from clientes where ID_Cliente is null (la tabla está diseñada para no permitir que el campo ID_Cliente acepte nulos por lo que la sentencia anterior siempre devuelve una tabla vacía). Con este query hago las inserciones sin ningún problema usando solo comandos "normales" de Delphi. El meollo del asunto es tener cuidado con la cantidad de registros que traes mediante un Query, como ya comenté.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#5
|
|||
|
|||
Sobre las inserciones te agradezco el truco.
Pero para las modificaciones y eliminaciones, que se te tienes que traer parte de los datos, seria aceptable utilizar el TQuery.delete o TQuery.Post. Gracias. |
#6
|
||||
|
||||
Es lo mismo... Si haces un TQuery.Delete el query manda una sentencia "DELETE FROM TABLE..." y el post hace un "UPDATE TABLE..." o "INSERT INTO ..." segun lo que estés haciendo (insertando un registro o editandolo).
De manera que: Para insertar...
Para borrar un registro actual... No importa si el query de donde borramos solo contiene unas cuantas filas o incluso una sola, el registro se borra de la tabla completamente...es decir... si tengo un query "SELECT * FROM CLIENTES" y otro "SELECT * FROM CLIENTES WHERE NOMBRE LIKE '%COMPANY%' " en ambos casos hacer un delete a cualquier registro nos da el mismo resultado: la eliminación, en este caso del cliente, de la tabla. Obviamente el primer Query tardará mas en abrirse que el segundo antes de poder hacer el TQuery.Delete. Ojo...Usar los metodos del TQuery solo funciona si el query que utilizas es de una sola tabla, si incluye joins o alguna otra cosa relacionada con mas de 1 tabla no es posible. Esto debido a que la mayoría de los motores no permiten editar sentencias multitablas.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Por qué MySql? | rastafarey | Debates | 11 | 08-01-2007 17:43:52 |
MySQL y DBf | bvargas_cr | MySQL | 0 | 19-06-2006 04:02:59 |
PHP & MySQL | woody | PHP | 1 | 24-04-2006 00:04:02 |
como conectarme remotamente mysql a mysql | sakuragi | MySQL | 14 | 11-11-2004 15:04:46 |
MySQL | User_Baja_2 | SQL | 5 | 23-03-2004 17:09:48 |
|