Locate
Estou utlizando o Seguinte Codigo:
Dm.TbArea.Locate(´Codigo´, VarArrayOF([Dm.TbAtribuicaoCodigoSetor.value]), []);
mas não está funcionando esta dando o erro: ... Not convert variant of type (array variant) into type (string).. sendo que os doi campos da tabela e do tipo Integer.
O que devo fazer
Desde já agradeço a todos
Dm.TbArea.Locate(´Codigo´, VarArrayOF([Dm.TbAtribuicaoCodigoSetor.value]), []);
mas não está funcionando esta dando o erro: ... Not convert variant of type (array variant) into type (string).. sendo que os doi campos da tabela e do tipo Integer.
O que devo fazer
Desde já agradeço a todos
Silvio
Curtidas 0
Respostas
Ipc$
23/08/2004
Também já tive problemas com isso e acho que o método Locate tem um pequeno furo. No caso do parâmetro ser somente 1 e vc passar um array de variants mesmo que seja criado somente com um elemento ele dá erro. Então para mim foi o seguinte: quando for mais de um parâmetro, utilizo o array de variants criado por VarArrayCreate, se for um só, utilizo
a variant como elemento único e não com v[0].
Me parece que no seu caso, VarArrayOf retorna um array de variants e passa v[0] p/ o Locate e é aí que dá o erro.
a variant como elemento único e não com v[0].
Me parece que no seu caso, VarArrayOf retorna um array de variants e passa v[0] p/ o Locate e é aí que dá o erro.
GOSTEI 0
Rômulo Barros
23/08/2004
Dm.TbArea.Locate(´Codigo´, VarArrayOF([Dm.TbAtribuicao.FieldByName(´CodigoSetor´).AsString]), []);
Não custa nada. A propriedade .Value é do tipo variant, por isso q ocorre o erro.
No lugar de .AsString, vc tb poderá utiliza o .AsInteger;
:wink: :arrow: :arrow: :arrow: :arrow: oi eu aqui...
Não custa nada. A propriedade .Value é do tipo variant, por isso q ocorre o erro.
No lugar de .AsString, vc tb poderá utiliza o .AsInteger;
:wink: :arrow: :arrow: :arrow: :arrow: oi eu aqui...
GOSTEI 0
Sandra
23/08/2004
Silvio,
Não sei qual o banco de dados está utilizando, mas...
Acho que está havendo alguma confusão aí. :D
O VarArrayOf é utilizado quando se quer informar dois ou mais parâmetros para o Locate. Por isso, o erro apresentado na compilação.
:idea: Pesquisando no fórum, veja estes dois tópicos que encontrei:
* [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=46141&highlight=vararrayof]Locate em mais de um registro[/url]
* [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=41573&highlight=vararrayof]duvidas com locate[/url]
Exemplo (e maiores detalhes) que consta no help do Delphi:
Verifique também se a unit DB está declarada na lista de uses.
Boa sorte!
Não sei qual o banco de dados está utilizando, mas...
Acho que está havendo alguma confusão aí. :D
O VarArrayOf é utilizado quando se quer informar dois ou mais parâmetros para o Locate. Por isso, o erro apresentado na compilação.
:idea: Pesquisando no fórum, veja estes dois tópicos que encontrei:
* [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=46141&highlight=vararrayof]Locate em mais de um registro[/url]
* [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=41573&highlight=vararrayof]duvidas com locate[/url]
Exemplo (e maiores detalhes) que consta no help do Delphi:
with CustTable do Locate(´Company;Contact;Phone´, VarArrayOf([´Sight Diver´, ´P´, ´408-431-1000´]), [loPartialKey]);
Verifique também se a unit DB está declarada na lista de uses.
Boa sorte!
GOSTEI 0