> 
> 
> Joao Morais escreveu:
>  >
>  >
>  > Alexandre Rodrigues wrote:
>  > >> Isto ocorre porque o tipo string é, por padrão, uma ansi string, o que
>  > >> significa um ponteiro para a região da memória em que está a sequência
>  > >> de caracteres. Se você desabilitar a diretiva $H ou usar 
> shortstring ao
>  > >> invés de string o compilador irá criar uma string estática ao invés de
>  > >> um ponteiro para string, e isto deverá resolver o problema.
>  > >>
>  > >> Joao Morais
>  > >
>  > > João,
>  > >
>  > > Obrigado pela ajuda. Tentei usar shortstring e também não funcionou,
>  > > esqueci de falar que também tentei usar um array dinâmico de 
> caracters e
>  > > também não funcionou. A única maneira é usar strings com terminação em
>  > > nulo, ou seja matrizes de caracteres. O mais estranho de tudo é que
>  > > usando uma matriz dinâmica de strings funciona! Vai entender. Agora não
>  > > sei se é um bug do delphi ou não.
>  >
>  > Sinistro. Nenhum tipo de dado baseado em ponteiro deveria funcionar.
>  > Você poderia postar a parte do código que passa o record para o campo 
> blob?
>  >
>  > Joao Morais
> 
> Desculpe joão, a informação anterior estava errada. Na verdade estava
> carregando os valores default! Realmente não funciona com nenhum tipo
> baseado em ponteiro, mas isso me deu uma idéia, vou testar se funcionar
> posto o resultado.
> 
É João não tem jeito mesmo, sou obrigado a trabalhar com matrizes.
O delphi é tão transparente no trabalho com ponteiros que esqueci que 
eles ainda existem, rsrsrsrsrs. Se fosse no C/C++ já tinha me tocado 
disso antes.
Para gravar a estrutura no banco, transfiro ela para uma stream e faço:

NomeDaStream.Write(Value, SizeOf(Estrutura));

Ai que tá o problema, o SizeOf não vai "contabilizar" o tamanho dos 
dados baseados em ponteiros, como string e matrizes dinâmicas! Erro 
básico. rsrsrsrs.
Valeu pela ajuda e muito obrigado.

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 

Responder a