Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara efektif memori untuk membaca data BLOB di C#/SQL 2005

Lihat artikel yang luar biasa ini di sini atau postingan blog ini untuk penjelasan panjang bagaimana melakukannya.

Pada dasarnya, Anda perlu menggunakan SqlDataReader dan menentukan SequentialAccess untuk itu ketika Anda membuatnya - maka Anda dapat membaca (atau menulis) BLOB dari database dalam potongan ukuran apa pun yang terbaik untuk Anda.

Pada dasarnya sesuatu seperti:

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();

Marc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sisipan massal pyodbc dasar

  2. SQL Server AlwaysOn Availability Groups:Instalasi dan konfigurasi, Bagian 2

  3. Memanggil API dari prosedur tersimpan SQL Server

  4. Cara melewatkan array ke prosedur tersimpan SQL Server

  5. Terjadi kesalahan tingkat transportasi saat menerima hasil dari server