The trick here is to use ExecuteReader in serial mode and read data from IDataReader . Here the version for CLOB - BLOB files are almost identical, but with byte[] and GetBytes(...) .
Something like:
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)) { byte[] buffer = new byte[8040]; // or some multiple (sql server page size) while (reader.Read()) // each row { long dataOffset = 0, read; while ((read = reader.GetBytes( colIndex, dataOffset, buffer, 0, buffer.Length)) > 0) { // TODO: process "read"-many bytes from "buffer" dataOffset += read; } } }
Marc gravell
source share