Consulta dbexpress/firebird

Delphi

29/12/2006

Bom dia a todos
sou novo aqui no forum.

Estou iniciando com dbexpress e firebird, já fiz um exemplo de uma apostila que encontrei não lembro onde, tudo esta funcionando até o ponto em que executo uma procura, quando nao existe o que eu digitei
no EdBusca.Text parece que entra em loop e trava o programa, quando existeo que eu digitei tudo bem dá certo.
E também só retorna um registro. Por exemplo se quiser procurar o que comece com ´Rai´ se existir vários raimundo ele mostra só o primeiro que encontrou.
Peço ajuda para solucionar isso. Obrigado.

veja o código do botão procurar:

procedure TForm1.BitBtnProcurarClick(Sender: TObject);
Var
Consulta: string;

begin
If Trim(EdBusca.Text) <> ´´ then
begin
Consulta := ´select Sintaxe, Funcao from Comandos where ´;
//No campo
if RadioCampo.ItemIndex = 0 then
Consulta := Consulta + ´Sintaxe ´
else
Consulta := Consulta + ´Funcao ´;

//Que
If RadioTipo.ItemIndex = 0 then
begin
Consulta := Consulta + ´starting with ´´´+ EdBusca.Text + ´´´´;
end
else
if RadioTipo.ItemIndex = 1 then
Consulta := Consulta + ´like ´´¬´ + EdBusca.Text + ´¬´´´
else
Consulta := Consulta + ´like ´´¬´ + EdBusca.Text + ´´´´;

try
Transacao.TransactionID :=1;
Transacao.IsolationLevel := xilREPEATABLEREAD;
SQLConnection1.StartTransaction(Transacao);
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Append(Consulta);
SQLQuery1.Open;
SQLConnection1.Commit(Transacao);
except
on Exc:Exception do
begin
ShowMessage(´Ocorreu um erro na consulta: ´ + Exc.Message);
SQLConnection1.Rollback(Transacao);
end;
end;
CarregaLista;
end;
end;


procedure TForm1.CarregaLista;
begin
SQLQuery1.First;
ListView1.Items.Clear;
while true do
begin
ListView1.Items.Add;
ListView1.Items.Item[ListView1.Items.Count - 1].Caption := SQLQuery1.Fields.Fields[0].AsString;
ListView1.Items.Item[ListView1.Items.Count - 1].SubItems.Add(SQLQuery1.Fields.Fields[1].AsString);
try
SQLQuery1.Next;
except
break;
end;
end;
end;


Altenir

Altenir

Curtidas 0
POSTAR