2009-04-07 6 views
0

私は最近再訪したアプリケーションを持っています。なぜTADOBlobField.Savetofileは8バイトしか書きません

MSSQLデータベースのテキストフィールドにファイルを保存します。私はそれをADOTableに読み込み、TBlobfieldとしてSavetofileを呼び出してディスク上のファイルに書き込みます。これはいつも効果があります。しかし今は、正しいファイルではなく8バイトのファイルを保存するだけです。

私はこの前に起こったことのあいまいな記憶を持ち、誰かがそれを見つけて解決策を知っているのだろうかと疑問に思っていましたか?私はDelphi 7を使用しています。

+0

コードサンプルのかもしれないの出荷バージョンの既知のバグ助けて。 – mj2008

答えて

0

幸運1.

これはデルファイ7

1

blobフィールドがクエリの最後のフィールドでなかった場合、数年前(以前のバージョンのado)、therは問題でした。私はまだそれが本当であるかわからない

4

データベース(サーバー/バージョンのアップグレード)で何か変更されましたか?クライアントマシン(XP?Vista?)? SaveToFileメソッドを呼び出すと何が保存されますか(多分ファイルは8バイトのみです)?フィールドは空白/ヌルですか?

セットベースのRDBMS(MSSQL、Oracleなど)に対してテーブルベースのコンポーネント(TTable、TADOTableなど)を使用しないことをお勧めします。TADODataSetを使用し、すべてのD7/ADOパッチが適用されていることを確認してください。

この問題は直接のDelphi 7の更新プログラムを適用していないた私によって引き起こされた

+0

Delphi 7はUpdate 1を適用していませんでした。これは、Update 1で修正された既知のバグです。 –

関連する問題