> > > 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/