Ver Mensaje Individual
  #1  
Antiguo 24-01-2007
Avatar de zcatzz
zcatzz zcatzz is offline
Miembro
 
Registrado: dic 2006
Posts: 48
Reputación: 0
zcatzz Va por buen camino
Quiero liberar my query para usar el mismo varias veces

Hola Chicos muchas gracias por leer esta duda.. necesito que me hechen una mano .. resulta que tengo un programa que realiza un monton (pero de verdad un monton) de consultas mysql por lo que al principio re-usar los querys de alguna manera "limpiarlos" antes de volver a usarlos pero me marcaba errores con referencia a parametros antes usados.. por lo que mi solucion mas viable fue hacer uno para cada busqueda.. Despues de eso no tuve ningun problemas porque trabajaba localmente.. pero ahora el problema es que al usarlo en forma no local el programa se hace lentisiimo y no se si sea por la cantidad de querys que tengo en el programa.. miren asi es como los uso:
Código SQL [-]
DModulo.QBuscar.Active:=false;
    DModulo.QBuscar.SQL.Clear;
   DModulo.QBuscar.SQL.Text:='select distinct * from  '+
                      'alumnos,tipodealumno,municipio,grados ' + 
                      'where tipodealumno.tipo_alumno=alumnos.tipo_alumno '+  
                      'and alumnos.grado=grados.id_grado and ' + 
                   'alumnos.id_mpio=municipio.id_mpio and alumnos.matricula=:mat'; 
               DModulo.QBuscar.Parameters.ParamByName('mat').Value:=BuscaMatricula.Text;
    DModulo.QBuscar.Active:=true;



en un foro anterior me dijeron que agregara esta linea:
Código SQL [-]
  DModulo.QBuscar.Parameters.Clear;


primero me dijeron que la pusiera aqui:
Código SQL [-]
DModulo.QBuscar.SQL.Clear;
   DModulo.QBuscar.SQL.Text:='select distinct * from  '+  
                      'alumnos,tipodealumno,municipio,grados ' +  
                      'where tipodealumno.tipo_alumno=alumnos.tipo_alumno '+ 
                          'and alumnos.grado=grados.id_grado and ' + 
              'alumnos.id_mpio=municipio.id_mpio and alumnos.matricula=:mat';
  DModulo.QBuscar.Parameters.Clear;
 DModulo.QBuscar.Parameters.ParamByName('mat').Value:=BuscaMatricula.Text;
   DModulo.QBuscar.Active:=true;


pero me marca un error me dice: parametro 'mat' no encontrado

entonces alguien mas me sugirio que pusiera la linea aqui:

Código SQL [-]
DModulo.QBuscar.SQL.Clear; 
 DModulo.QBuscar.Parameters.Clear; 
      DModulo.QBuscar.SQL.Text:='select distinct * from  '+ 
                     'alumnos,tipodealumno,municipio,grados ' +
                      'where tipodealumno.tipo_alumno=alumnos.tipo_alumno '+ 
                      'and alumnos.grado=grados.id_grado and ' +  
             'alumnos.id_mpio=municipio.id_mpio and alumnos.matricula=:mat';  
 DModulo.QBuscar.Parameters.ParamByName('mat').Value:=BuscaMatricula.Text;
    DModulo.QBuscar.Active:=true;

pero me arroja el error incial el que me dice de que no encuentra algun parametro que anteriormente use en el query anterior.

Por favor si a alguien se le ocurre algo o que encuentre el error que no logro visualizar de verdad se lo agradeceria, ya que el programa ya esta terminado pero el cliente no lo quiere por la lentitud.

Última edición por zcatzz fecha: 24-01-2007 a las 00:56:02.
Responder Con Cita