Locate não funciona

Firebird

04/11/2005

Estou usando IBDataBase e IBTable, quando utilizo o comando
Locate(´nomedocampo´, variavel, []) ele nunca ´acha´ o registo, porém se colocar
Locate(´nomedocampo´, variavel, [lopartialkey]) ele acha o registro, só que estou procurando em campo numérico e não posso utilizar o lopartialkey.
Alguém sabe o porquê deste erro no locate com ibtable?


Edilcimar

Edilcimar

Curtidas 0

Respostas

Edilcimar

Edilcimar

04/11/2005

Consegui a solução porém não a entendi, quando coloco

variavel := strtoint(edit1.text);
Locate(´nomedocampo´, variavel, []), ele não acha!

Porém se colocar
Locate(´nomedocampo´,strtoint(edit1.text),[]) ele acha!

Afinal de contas o principio é o mesmo transformar um texto em inteiro, só que quando uso direto funciona e quando uso uma variável deixa de funcionar.


GOSTEI 0
Martins

Martins

04/11/2005

Consegui a solução porém não a entendi, quando coloco variavel := strtoint(edit1.text); Locate(´nomedocampo´, variavel, []), ele não acha! Porém se colocar Locate(´nomedocampo´,strtoint(edit1.text),[]) ele acha! Afinal de contas o principio é o mesmo transformar um texto em inteiro, só que quando uso direto funciona e quando uso uma variável deixa de funcionar.


Estranho mesmo, essa é boa viu!!!!


GOSTEI 0
Edilcimar

Edilcimar

04/11/2005

que é estranho eu também achei, estou a procura da explicação


GOSTEI 0
Martins

Martins

04/11/2005

que é estranho eu também achei, estou a procura da explicação


Ficamos assim então, quem encontrar primeiro posta aqui, assim o pessoal fica sabendo tb.

Boa sorte!!


GOSTEI 0
Raserafim

Raserafim

04/11/2005

também já tive um problema semelhante. quando colocava direto funcionava, quando colocava por uma variável não funcionava. não lembro em que condições foi.


GOSTEI 0
Afarias

Afarias

04/11/2005

Tem q ver o tipo do campo e principalmente da variável. Lembrem-se q no locate estamos lidando com VARIANTS, então a conversão de tipos pode ser um fator neste ´problema´


T+


GOSTEI 0
Edilcimar

Edilcimar

04/11/2005

o campo é integer do firebird e a variável é integer


GOSTEI 0
POSTAR