Dar Locate em um campo String que não é chave primaria
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.
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
Curtidas 0
Respostas
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.
Thiago PaRoSan.
GOSTEI 0
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
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
28/04/2008
Na verdade não da erro nenhum, ele simplesmente não faz o locate.
GOSTEI 0
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++
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