Pergunta

Eu tenho um aplicativo de trabalho que eu tenho revisitado recentemente.

eu armazenar um arquivo em um campo de texto em um banco de dados MSSQL. Eu li em um ADOTable e como uma chamada TBlobField SaveToFile para escrever para um arquivo no disco. Isso sempre funcionou. No entanto, agora é simplesmente salvar um arquivo de 8 bytes em vez do arquivo correto.

Eu tenho uma vaga lembrança de que isso aconteça antes e queria saber se alguém tem se deparar com ela e sabe a solução? Eu estou usando Delphi 7.

Foi útil?

Solução 3

Este problema foi causado diretamente pela minha não ter aplicado o Delphi 7 Atualização 1.

Este é um bug conhecido na versão fornecida Delphi 7.

Outras dicas

Mudou alguma coisa no banco de dados (atualização do servidor / version)? máquina cliente (XP? Vista?)? O que está sendo salvo quando você chamar o método SaveToFile (talvez o arquivo é de apenas 8 bytes)? Poderia o campo estar / null vazio?

Eu recomendaria não usando componentes de mesa com base (TTable, TADOTable, etc) contra um conjunto com base RDBMS (MSSQL, Oracle, etc), use TADODataSet e certifique-se de ter todo o D7 / ADO patches aplicados.

Boa sorte

Vários anos atrás (versões mais antigas do ADO), houve um problema, se o campo (s) blob não foi o último campo na consulta. Eu não sei que ainda é verdade

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top