Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Ефективен начин за четене на BLOB данни в C#/SQL 2005

Вижте тази отлична статия тук или тази публикация в блог за дълго обяснение как да го направя.

По принцип трябва да използвате 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. По-добре ли е да използвате уникален идентификатор (GUID) или bigint за колона за идентичност?

  2. Как да подредя редове от таблица във възходящ ред и едновременно да запиша таблицата?

  3. Връщане на привилегии на таблица от свързан сървър в SQL Server (T-SQL примери)

  4. Как мога да направя израз UPDATE с JOIN в SQL Server?

  5. ACOS() Примери в SQL Server