Resolvido, muito obrigado.

Agora só ficou a curiosidade de saber como o Delphi converte. Sabendo disso 
posso confiar que diversas combinações não gerarão o mesmo número eventualmente.

incidencia := [IncideFGTS, IncideINSS, IncideIRRF]; //11
incidencia := [IncideFGTS, IncideIRRF]; //3
incidencia := [IncideFGTS, IncideINSS, IncideIRRF, IncideAcidente]; //65547


--- Em delphi-br@yahoogrupos.com.br, Rubem Rocha <rubem.ro...@...> escreveu
>
> Tipos enumerados internamente são representados como números inteiros.
> Portanto, o tipo de dados para um campo armazenar um dado enumerado deve ser
> inteiro. Assim sendo, seu código deveria ser mais ou menos assim:
> 
>  
> 
> type
> 
>   TMeuTipo = (a, b, c, d);
> 
>   TMeuTipoSet = set of TMeuTipo;
> 
>  
> 
> var
> 
>   TipoSet: TMeuTipoSet;
> 
>  
> 
> begin
> 
>   TipoSet := [b, d];
> 
>   { … }
> 
>   cds.FieldByName(`campo').AsInteger := Integer(TipoSet);
> 
>   { … }
> 
>   TipoSet := TMeuTipoSet(cds.FieldByName(`campo').AsInteger);
> 
> end;
> 
>  
> 
> Tente isto.
> 
> Sds.
> 
>  
> 
> De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
> nome de Higor
> Enviada em: sexta-feira, 11 de dezembro de 2009 13:59
> Para: delphi-br@yahoogrupos.com.br
> Assunto: [delphi-br] Persistir Set of Type
> 
>  
> 
>   
> 
> Gostaria de saber se é possível gravar no banco de dados o estado de uma
> variavel do tipo set of Type Enum. Se não estou enganado, uma vez vi um
> código delphi que gerava um número inteiro de um set e gravava num
> arquivo.ini.
> 
> ex:
> 
> Type TMeuTipo = (a,b,c,d);
> type TMeuTipoSet = set of TMeuTipo;
> 
> var tiposet: TMeuTipoSet;
> begin
> //usuário faz algo em tela que resulta em:
> tiposet := [b,d];
> cds.FieldByName('campo').value := tiposet; //isso é possível?
> 
> //para depois em algum momento ao carregar o form eu possa:
> tiposet := cds.FieldByName('campo').value;
> end;
> 
> obrigado desde já,
> Higor Granzoto
> 
>  
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a