Delphi consultas

Hola, tengo creado un bdgrid conectado a una base de datos, supongamos que registra nombres de empresa con su dirección, teléfono, etc... Y quiero realizar una consulta por nombre incompleto de las empresas, ejemplo si pongo una 'P' que me saquen todas las que contengan una p en el nombre. ¿Qué código debería de poner en el 'dbedit' que he creado para esa tipo de consulta?
Gracias.
Respuesta
1
Primero asumo que usas un DBGrid, no un bdgrid o 'dbedit' como mencionas sino por favor confírmame bien que control usas.
Luego el DBGrid se alimenta por un origen de datos, como no especificas cual te doy el ejemplo de un ADOQUery, luego para aplicar un filtro seria:
ADOQuery.Filter = 'NombreEmpresa LIKE ' + QuotedSTR('%P%');
ADOQuery.Filtered = true;
Eso es todo.
Hola, si un dbgrid, me he equivocado al escribirlo... pero lo que necesito es la consulta en pascal no en sql.. estoy utilizando "tables" con la base de datos paradox. No me la piden en sql la consulta,
Gracias.
Te comento la solución es la misma, la verdad no conozco otra forma de filtrar datos los componentes tables deberían tener la propiedad filter también y se utiliza del mismo modo.
Ahora suponiendo que no tenga dicho propiedad no se me ocurre otra que recorrer todo el table, y mediante un IF armar una table temporal y luego copia el conteniedo al original, algo como:
tabletemp := table.create;
try
 while not table.eof do begin
   if pos('P', table.fieldbyname('campo').asstring ) > 0 then begin
     tabletemp.insert;
     tabletemp.fieldbyname('campo').asstring := table.fieldbyname('campo').asstring;
     tabletemp.post;
   end;
   table.next; 
 end
 table.clear;
 //copiar contenido de tabletemp a table;
finally
  tabletemp.free;
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas