Ver Mensaje Individual
  #7  
Antiguo 11-08-2003
CORBATIN CORBATIN is offline
Miembro
 
Registrado: may 2003
Ubicación: España
Posts: 131
Reputación: 24
CORBATIN Va por buen camino
Eso es lo que pasa cuando se sacan datos de varias tablas con algún campo en común y no se igualan dichos campos ejemplo:
Tenemos la tabla mia con campos: id,nombre,errores.
Tenemos la tabla tuya con campos:num,dato,id.

Al hacer una consulta usando estas dos tablas se debería hacer esto con los campos iguales:

select mia.*, tuya.dato
from mia,tuya
where mia.id = tuya.id

De esta forma no te dupica los datos.

Pero por lo que veo, en esta consulta solo utilizas una tabla. Prueba a poner después del Select la palabra "distinct" o "distinct row", espero que te sirva.

Con respecto a añadir código SQL no hace falta escribir tantas veces la propiedad add del query:

antes:
query1.sql.add('tengo que hacer muchas cosas ');
query1.sql.add('y todas son para hoy');

ahora:
query1.sql.add('tengo que hacer muchas cosas '+
'y todas son para hoy');

Y por último es mejor acceder a los parámetros de una query a través de la propiedad params ejemplo:

antes:
query1.parambyname('campo').asinteger;
en este código necesita acceder a este campo y debe buscar la referencia escrita para saber que parámetro es.

ahora:
query1.params[0] := mydato.//no estoy seguro si la propiedad se llamaba así o algo parameters.
De esta forma sabe directamente a qué parámetro estamos haciendo referencia y funcionará un poquito más rápido.

En la ayuda vienen varios ejemplos de esto, te aconsejo que la miras ya que no estoy muy seguro si el nombre de la propiedad es ese, además de no acordarme si después había que decir el tipo del parámetro con "asintegero asString".

Saludos.
__________________
No hay vientos favorables para quién no conoce su rumbo.
Responder Con Cita