Hola mantraxer21.
Cita:
Consulta. estoy realizando un formulario de "préstamo de libros" (biblioteca básica) y dentro de ello, tengo un control tEdit llamado "txtfiltro" que realiza una búsqueda exacta de un campo determinado en mi tibQuery (qConsultar).
Código SQL [-]
select * from libros
where
libros.isbn_lib like '%' || :xisbn || '%'
|
En realidad esa búsqueda no es exácta ya que trae todos los registros cuyos campos "ISBN_LIB" contengan los caracteres enviados en el parámetro ":XISBN". Es decir, eventualmente podría devolver una sola coincidencia, pero es un factor incidental.
Si deseas que la consulta realice una búsqueda exácta de un registro sería:
Código SQL
[-]
SELECT *
FROM LIBROS
WHERE LIBROS.ISBN_LIB = :XISBN
Cita:
Esta consulta me trae varios datos cómo: "Nombre Autor", "Título Libro", "Codigo ISBN", "Temática", "Ubicación del Libro".
|
Al usar "*" te devuelve todas las columnas de la tabla "LIBROS".
La consulta:
Código SQL
[-]
SELECT *
FROM LIBROS
WHERE LIBROS.ISBN_LIB = '%' || :XISBN || '%'
Es muy utilizada en búsquedas incrementales (no muy eficientes) la cuál podes podes implementar de este modo:
1) Un
TIBQuery asociado a un
TDataSource y un
TDBGrid asociado al anterior.
Código:
TIBDataBase <- TIBTransaction
|
+ <- TIBQuery <- TDataSource <- TDBGrid
2) Agregar un
TEdit con este código en su evento
OnChange:
Código Delphi
[-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
with IBQuery1 do
begin
Close;
SQL.Text:= 'SELECT * FROM LIBROS WHERE ISBN_LIB LIKE :XISBN';
ParamByName('XISBN').AsString:= '%' + Edit1.Text + '%';
Open;
end;
end;
De ese modo a medida que vas ingresando caracteres en el Edit se va filtrando el resultado y se vé reflejado en el DBGrid. Pero no estoy seguro si satisface tu pregunta, estoy infiriendo la respuesta a partir de la consulta SQL de tu mensaje.
Saludos