Ver Mensaje Individual
  #3  
Antiguo 01-02-2004
barrauda barrauda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Balcarce - Buenos Aires
Posts: 42
Reputación: 0
barrauda Va por buen camino
explico un poco mas

Hola, ya que o yo lo llamo Busqueda blanda o es un regionalismo pero lo importante es que tengo una base de datos en firebird, me conecto usando un IBtable, lo que quiero hacer es en una Grilla aparecen los datos de la Base de datos, luego tengo un Edit donde escribo el apellido. cuando comienzo a escribir la primer letra el código que tengo escrito va buscando esa letra, si se va posicionando en algún lugar de la Grilla donde conincida la letra, luego sigue por la siguiente, y así hasta coincidir totalmente en este caso el Apellido. En mi tabla la clave primaria se llama NroAlum y creé otra clave llamada Apellido. En las propiedades IndexFieldName de IBtable le pongo Apellido, me lo ordena por el apellido pero la consulta no anda. Yo he hecho esto muchas veces usando Paradox y me funciona perfectamente pero no se porque motivo no puedo hacerlo andar con Firebird.
agrego el código para lo que llamo Búsqueda Blanda:


if (uppercase(edit1.text)<= uppercase(ibtable1.FieldByName('APELLIDO').value)) then
begin
while not ((uppercase(edit1.text)>= uppercase(ibtable1.FieldByName('APELLIDO').value)) or ibtable1.bof) do
begin
ibtable1.prior;
end;

if (uppercase(edit1.text)> uppercase(ibtable1.FieldByName('APELLIDO').value)) then
ibtable1.Next;
ibtable1.refresh;
end
else
while not ((uppercase(edit1.text)<= uppercase(ibtable1.FieldByName('APELLIDO').value)) or ibtable1.Eof) do
begin
ibtable1.next;
end;
if (uppercase(edit1.text)< uppercase(ibtable1.FieldByName('APELLIDO').value)) then
ibtable1.prior;
ibtable1.refresh;

Muchas gracias por su paciencia.
Responder Con Cita