Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

crawler

[Resolvido] Erro com o tipo variante

Recommended Posts

Pessoal, estava eu desenvolvendo uma classe de persistência de dados, mas como sou leigo nessa parte avançada do delphi, acabei ficando perdido, com o tipo variante, para armazenar qualquer tipo de dado.

 

procedure TField.set_AsString(Value: String);
begin
  FoValue := Value;
end;

Dá o seguinte erro em execução : 'Invalid variant type', quando tento armazenar uma string nessa variável.

 

Alguém sabe como faço para armazenar uma string nessa variável, ou se posso usar outro tipo de dado genérico, para armazenar vários tipos de dados?

 

Por favor, preciso de ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém sabe como faço para armazenar uma string nessa variável, ou se posso usar outro tipo de dado genérico, para armazenar vários tipos de dados?

 

Por favor, preciso de ajuda.

 

Olá amigo, tente o tipo Variant..

 

Exemplo:

var
Dado: Variant;
bInteiro: Boolean;
begin
bInteiro:= True; //-- Define se a variavel ira receber valor inteiro ou nao

if bInteiro then
   Dado:= 1000 //-- Recebe valor inteiro
   else
   Dado:= 'Não é um valor inteiro!'; //-- Recebe uma String

if bInteiro then
   ShowMessage(IntToStr(Dado)) //-- Se for inteiro converte para string
   else                        //-- para pode mostrar na msg
   ShowMessage(Dado); //-- Se não for mostra o dado..

end;

O tipo variant assume o tipo que você carregar nele..

Espero que ajude..

 

Abraços e boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Geovane Velmer, obrigado pela sua atenção.

 

Realmente você estava com razão quanto ao tipo variant, na verdade esse método pertence a uma classe que carrega uma lista de campos do banco de dados e compara com o campo que chama na função por parametro fazendo assim o "fieldbyname". Meu erro na verdade é que eu estava chamando errado a função ex: dataset.fieldbyname('campo '), esse espaçamento ai tava fazendo ficar errado.

 

Resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.