Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2004
Clantt Clantt is offline
Miembro
 
Registrado: abr 2004
Ubicación: Tarija
Posts: 34
Poder: 0
Clantt Va por buen camino
Red face Búsquedas y TIBDataSet

hola a todos, como siempre aqui les traigo una duda o mejor dicho varias.
Para programar una buena aplicación en cliente/servidor se tiene que tomar en cuenta el tráfico de la red, pensando en eso yo relice dos tipos de busquedas y no se cual es la mas eficiente, me podrian dar alguna mano por favor.

Las busquedas consisten en buscar y seleccionar los datos un cliente de la tabla personas, pero esta búsqueda se debe llevar a cabo en el evento OnChange de un Edit para que el usuario pueda ver en un DBGrid las apróximaciones del nombre del cliente, es decir que si a pulsado una 'P' aparescan en el DBGrid todos los usuarios que enpiecen con la letra 'P' y si presiona seguido a la 'P' la letra 'E' aparescan todos los usuario que enpiecen con la letras 'PE' y asi sucesivamente, como si fuera un filtro o algo asi.

Bueno para eso me hice de dos Procedimientos descritos a continuación:
1º.- Este procedimiento consiste en trabajar con un IBDataSet para la búsqueda exacta y un IBQuery para la búsqueda parcial, se los describo a continuación, lo bueno de esta búsqueda es que mustra todos los datos en el DBGrid y el puntero va seleccionando las apróximaciones.

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '' then
Clientes.First //Clientes es el nombre del IBDataSet
else
begin
ibquery1.ParamByName('Xno').AsString := Edit1.Text;

//Xno es la variable de envio para el select del IBQuery1
//la consulta en el query Select Ci from personas where (NOMBRE starting with :Xno)

ibquery1.Open;
try
//realizando la búsqueda exácta
if ibquery1.Eof or not Clientes.Locate('CI',
ibquery1.FieldValues['CI'],[]) then beep

//Dentro del IBDataSet he asignado la siguiente consulta Select * from PERSONAS

finally
ibquery1.Close;
end;
end;
end;

2º.- Y este otro procedimiento que funciona casi igual pero solo muestra los datos de las aproximaciones hasta que lo ubica descartando a los otros del DBGrid.

Procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '' then
Mconexion.Clientes.First //Clientes el IBDataSet
else
begin
Clientes.Close;
Clientes.ParamByName('Xno').AsString := Edit1.Text;
Clientes.Open;
end;
end;

//La consulta en el IBDataSet es la siguiente
//Select * from PERSONAS where (Nombre starting with :Xno)


Bueno estos son mis dos procedimientos, espero que alguien me pueda indicar cual de los dos es el mas aconsejable para cliente/servidor. Gracias....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:28:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi