SQL Server 2008 では、VarBinary パラメーターを受け入れるストアド プロシージャがあります。パラメータがメモリ内にある間に、SQL Server の %temp% ディレクトリに書き込みたいと考えています。
メモリ BLOB (C# アプリから byte[] として取得) からテキスト ファイルに移動するにはどうすればよいですか? BLOB は、どのディスク常駐テーブルにも存在しません。
私は、TSQL sproc が CLR ストアド プロシージャを呼び出すようにすることに傾いています。これは、これまで (ほとんど) 以下のようになっています。
問題 1 は、inputBytes[] が 8k の入力サイズでスタックしていると思うことです。
問題 2 は、varbinary 値をパラメーターとして渡す適切な SQL を考え出すことができないため、Management Studio または VS DB 単体テスト内でこれをテストできることです。
public static void FileWrite( string inputName , byte[] inputBytes )
using (FileStream fileStream = new
FileStream(Environment.GetEnvironmentVariable("TEMP") + "\\" + inputName,
FileMode.OpenOrCreate, FileAccess.Write))
{
using ( BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
binaryWriter.Write( inputBytes );
}
}
ありがとう。