Hola Chris.
Te paso otra posibilidad para las busquedas extendidas.
Me hice una función para componer la consulta, no digo con esto que sea inventiva mía, de algún lado seguramente habré sacado la idea ...
Código Delphi
[-]
function ComponerConsulta(Tabla, Criterio, Texto: string; Inx: Integer): string;
begin
Result:= 'SELECT * FROM ' + Tabla + ' WHERE ' + Criterio;
case Inx of
0:Result:= Result + ' LIKE ' + QuotedStr(Texto + '%'); 1:Result:= Result + ' CONTAINING ' + QuotedStr(Texto); 2:Result:= Result + ' = ' + QuotedStr(Texto); 3:Result:= Result + ' LIKE ' + QuotedStr('%' + Texto); 4:Result:= 'SELECT * FROM ' + Tabla; end;
Result:= Result + ' ORDER BY ' + Criterio;
end;
Luego, como ejemplo, podés usar un ComboBox para el criterio (por nombre, direccion, teléfono, documento,...), un Edit para ingresar el texto buscado y un RadioGroup para el tipo de coincidencia (comienza con, contiene a, coincide con, termina con y restaurar). El resultado de la seleccíon lo podes mostrar en un DBGrid para ampliar más las opciones.
Si aún así no encuentra al paciente; el que está frente al monitor es un neardental...
La confección de la consulta no ofrece inseguridad alguna por que es de uso interno de la aplicación. Y la degradación de la performance es mínima ya que la búsqueda no es incremental y sólo se usa cuando existen problemas para individualizar un paciente (aunque puede aplicarse a cualquier tabla).
Quizá ya se te haya ocurrido y lo hayas descartado por no adecuarse al proyecto, pero bueno te hacerco la idea con la esperanza de que te sea de utilidad.
Un saludo.
Edito: No pongo imágenes de mis pantallas por que son espantosas. Además no estamos en el foro 'Humor' y no quiero que nadie se ría...