Dar Locate em um campo String que não é chave primaria

Delphi

28/04/2008

Boa tarde pessoal, estou tentando fazer um locate em um campo String mas não estou conseguindo, tem algum comando extra para colocar, segue abaixo o codigo que estou colocando no meu locate:

dm.duplicata.Open;
if dm.duplicata.Locate(´TITULO´, duplicata.Text, [])then
begin
//////////
end;

Lembrando que o campo ´TITULO é do tipo String´, valeu ai pessoal, abraços.

PS.: Já experimentei também com o [lopartialkey, locaseinsensitive], e este campo tera que ser digitado completo.

Valeu pessoal, abraços.


Onhide86

Onhide86

Curtidas 0

Respostas

Parosan

Parosan

28/04/2008

Não sei se é o caso más tente verificar o tipo de campo que está usando em firebird e outros bancos, campos char são sempre com o tamanho total do campo, preenchendo a direita com espaço, a solução para isso é usa o campo varchar e/ou ativar uma opção relacionada a isso na conexão acho que é trimchar ou algo assim, estiver usando outra tabela ou se funcionar coloque aqui.

Thiago PaRoSan.


GOSTEI 0
Onhide86

Onhide86

28/04/2008

O tipo de campo que estou utilizando é o VARCHAR e a base de dados é no Firebird 2.0, valeu.


GOSTEI 0
Rodc

Rodc

28/04/2008

A meu ver está correto o código. Qual é o erro que ocorre? Ele simplementente não encontra o texto? E se você trocar ´duplicata.Text´ direto pelo questo que está procurando?


GOSTEI 0
Onhide86

Onhide86

28/04/2008

Na verdade não da erro nenhum, ele simplesmente não faz o locate.


GOSTEI 0
Mazzi

Mazzi

28/04/2008

OLa , tente seguir esse exemplo:

TABELA.LOCATE(´DATA_CLIENTE´, DBgridCLientes.columns.Grid.Fields[1].Asstring,[loCaseInSensitive,loPartialKey]);


altere ´DATA_CLIENTE´, para o campo que deseja da tabela selecionada;

altere Fields[1] para o indice na ordem estiver mostrando os dados, nesse caso , estou exemplificando dentro de uma grid;

acho q é isso.
vlw?
Abraços++


GOSTEI 0
POSTAR