Fórum GotoNearest em TQuery #172363
30/07/2003
0
No TTable eu usava o GotoNearest para localizar um registro, e se ele nao encontrar, ele posiciona no mais próximo.
Gostaria de fazer a mesma coisa em um TQuery. COmo fazer?
Preciso que o cara digita num campo e conforme ele digita, já vai posicionando no registro mais próximo. Isso no TTable é moleza. Mas como fazer isso no TQuery?
Obrigado!
Nildo
Curtir tópico
+ 0Posts
30/07/2003
Aroldo Zanela
Você pode utilizar o locate com localização parcial ou o LIKE na cláusula Where da instrução SQL que você está especificando na Query. Ambos independem do Banco de dados que esteja utilizando.
Gostei + 0
31/07/2003
Nildo
Eu naum tinha pensado nisso!
Gostei + 0
20/12/2003
Gilson_our
Table1.INDEXNAME:=´Nome_do_indice´;
Table1.SETKEY;
Table1.FieldByName(´CAMPO´).ASSTRING:=Edit1.text;
Table1.GotoNearest;
Já usando o TQuery eu fiz e deu certo, só que a medida que eu vou digitando ou apagando os caracteres no TEdit, a Query vai sendo filtrada dando aproximações até achar o valor final. Quando usava o TTable, o dataset não era filtrado, o ponteiro apenas se movia posicionando nos registros. Alguém sabe se é possível fazer isso também no TQuery? Ou seja, não filtrar a Query a medida que os caracteres vão sendo digitados.
O código que eu usei para o TQuery foi este:
Query1.Close;
Query1.Sql.clear;
Query1.SQL.Add(´Select * from tabela´);
Query1.SQL.Add(´Where CAMPO like :valor´);
Query1.ParamByName(´valor´).AsString:= (Edit1.text + ´¬´);
Query1.Open;
Gostei + 0
21/12/2003
Aroldo Zanela
Conforme eu mencionei anteriormente você pode utilizar o método locate, ou seja, ao invés de restringir a consulta (Where) basta selecionar todos os registros e utilizar o método LOCATE para posicionar o cursor.
Gostei + 0
23/12/2003
Gilson_our
if Edit1.text = ´´ then
Query1.first;
Query1.Locate(´CAMPO´, Edit1.Text, [loPartialKey, loCaseInsensitive]);
Vc sabe qual dos dois métodos apresenta melhor performance de busca para tabelas ou queries com grande quantidade de registros, por exemplo mais de 100.000 registros. Aqui eu tenho uma table com apenas 4010 registros e não dá para notar diferença de performance.
Notei que o Interbase 6 diferencia os acentos na busca, tem algum jeito de ignorar os acentos na busca, igual o Paradox?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)