FILESTREAM
列を読み書きするのにSystem.Data.SqlTypes.SqlFileStream
を使用しますか?例えばFILESTREAM - FILESTREAM列に大きなファイルを読み書きします
:私はここに示されているクエリを使用して直接FileData
にアクセスすることができます上記のコードで
var sqlCommand = sqlConnection3.CreateCommand();
sqlCommand.CommandText = "Select FileData.PathName() As Path, GET_FILESTREAM_TRANSACTION_CONTEXT() As TransactionContext From PictureTable Where PkId = (Select Max(PkId) From PictureTable)";
var reader = sqlCommand.ExecuteReader();
reader.Read();
var filePath = (string)reader["Path"];
var transactionContext = (byte[])reader["TransactionContext"];
var sqlFileStream = new SqlFileStream(filePath, transactionContext, FileAccess.Read);
var data = new byte[sqlFileStream.Length];
sqlFileStream.Read(data, 0, Convert.ToInt16(sqlFileStream.Length));
:読むためにSqlFileStream
を使用してvarbinary(max)
を使用しない場合はどうなり
Select FileData From PictureTable Where PkId = (Select Max(PkId) From PictureTable)
そして書く?
SQL Serverとアプリケーションが別のサーバーにインストールされている場合、SqlFileStreamファイルパスにアクセスするためのセットアップWindows認証に問題があります。どのように私はこの問題を避けることができますか?