sql >> データベース >  >> RDS >> Sqlserver

C#/SQL2005でBLOBデータを読み取るためのメモリ効果的な方法

    この優れたこちらの記事 をご覧ください。 または、このブログ投稿 それを行う方法の長い説明のために。

    基本的に、SqlDataReaderを使用し、SequentialAccessを指定する必要があります 作成時にデータベースからBLOBを読み取り(または書き込み)、最適なサイズのチャンクにまとめることができます。

    基本的に次のようなものです:

    SqlDataReader myReader = getEmp.ExecuteReader(CommandBehavior.SequentialAccess);
    
    while (myReader.Read())
    {
       int startIndex = 0;
    
       // Read the bytes into outbyte[] and retain the number of bytes returned.
       retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
    
       // Continue reading and writing while there are bytes beyond the size of the buffer.
       while (retval == bufferSize)
       {
          // write the buffer to the output, e.g. a file
          ....
    
          // Reposition the start index to the end of the last buffer and fill the buffer.
          startIndex += bufferSize;
          retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
       }
    
       // write the last buffer to the output, e.g. a file
       ....
    }
    
    // Close the reader and the connection.
    myReader.Close();
    

    マーク



    1. pl/sqlストアドプログラムテキストに関する質問

    2. pgadminは私にエラーを与えます:パスワードが提供されていません

    3. phpディスプレイマルチレベルツリーノードメニュー

    4. Elasticsearchでメールや電話をあいまい一致させる方法は?