sql >> Database teknologi >  >> RDS >> Sqlserver

Hukommelseseffektiv måde at læse BLOB-data i C#/SQL 2005

Se denne fremragende artikel her eller dette blogindlæg for en lang forklaring, hvordan man gør det.

Grundlæggende skal du bruge en SqlDataReader og angive SequentialAccess til det, når du opretter det - så kan du læse (eller skrive) BLOB'en fra databasen i bidder af den størrelse, der er bedst for dig.

Dybest set noget som:

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. Flere SELECT CASE-udsagn i Query For Shoretel Reports

  2. PHP - send skjult værdi ind i jquery

  3. Introduktion til midlertidige tabeller i SQL Server

  4. Korrekt tidszonehåndtering med TYPO3 og Fluid