Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

SQL o Locate

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: SQL o Locate Responder citando

Me podeis decir cual de estas dos intrucciones se ejecutan mas rapido y por que?
A mi parecer se ejecuta mas rapidamente y así parece en mi programa cuando hago la busqueda en SQL, es cierto?
codigo Locate:
Código:

        TLocateOptions Opcion;
        Opcion.Clear();
        Variant jesus[2];
        jesus[0] = ((TSpeedButton*)Sender)->ComponentIndex;

        if(SpeedButtonArticulos->Down)
                jesus[1] = N - 118;
        if(SpeedButtonSuplementos->Down)
                jesus[1] = N - 88;
        if(SpeedButtonComentarios->Down)
                jesus[1] = N - 58;

        ModuloDatosControl->IBTable1->Locate("COMPONENTEGRUPO;NUMEROBOTON",VarArrayOf(jesus,1) ,Opcion);
       
        ((TBitBtn*)Components[N])->Caption = ModuloDatosControl->IBTable1->FieldByName("TEXTOBOTON")->AsString;
        ((TBitBtn*)Components[N])->Font->Color = ModuloDatosControl->IBTable1->FieldByName("CODIGOCOLOR")->AsInteger;

Codigo para SQL:
Código:

        int NumeroBoton;
        if(SpeedButtonArticulos->Down)
                NumeroBoton = N - 118;
        if(SpeedButtonSuplementos->Down)
                NumeroBoton = N - 88;
        if(SpeedButtonComentarios->Down)
                NumeroBoton = N - 58;
 
        ModuloDatosControl->IBQuery1->SQL->Clear();
        ModuloDatosControl->IBQuery1->SQL->Add("select TEXTOBOTON,CODIGOCOLOR from BOTONARTICULOS where COMPONENTEGRUPO =:Parametro1 and NUMEROBOTON =:Parametro2");
        ModuloDatosControl->IBQuery1->ParamByName("Parametro1")->AsInteger = ((TSpeedButton*)Sender)->ComponentIndex;
        ModuloDatosControl->IBQuery1->ParamByName("Parametro2")->AsInteger = NumeroBoton;
        ModuloDatosControl->IBQuery1->Open();
       
        ((TBitBtn*)Components[N])->Caption = ModuloDatosControl->IBQuery1->FieldByName("TEXTOBOTON")->AsString;
        ((TBitBtn*)Components[N])->Font->Color = ModuloDatosControl->IBQuery1->FieldByName("CODIGOCOLOR")->AsInteger;



En mi programa a pesar de tener mas codigo en la parte SQL me parece que funciona mas deprisa. Mi pregunta es: Es mas rapido una consulta SQL que una busqueda con Locate?
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

La velocidad con la que se ejcuta una comando de búsqueda no depende tanto del código (SQL o Locate) como de la propia base de datos o de la complejidad de la misma. En general, si la basde de datos cuenta con muchos registros suele ser más rápido un comando SQL que un Loctae puro y duro.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.