Por que é TADOBlobField.Savetofile única escrevendo 8 Bytes
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.
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