В более новых версиях SQL Server вы можете просто использовать обычный SQL с функцией SUBSTRING () для двоичных типов данных, а также для текста.
Смотри http://msdn.microsoft.com/en-us/library/ms187748.aspx
Чтобы получить размер изображения:
select datalength(blobcolumn) from myimages where imgid = 12345;
Чтобы прочитать первые 8 байтов:
select substring(blobcolumn, 1, 8) from myimages where imgid = 12345;
Чтобы прочитать 877 байтов, смещение от 115000 до 115876:
select substring(blobcolumn, 115001, 877) from myimages where imgid = 12345;
Помните, что функция подстроки основана на 1-смещении, а не 0.
Если вы заботитесь о возможном изменении столбца между его частями чтения, вы можете поместить все различные варианты выбора в транзакцию.
Это не проверялось мной, но более старые версии MS SQL Server, по-видимому, требуют использования (сейчас устаревшего) глагола READTEXT и функции TEXTPTR (). Такие как:
select textptr(blobcolumn) from myimages where imgid = 12345;
получить возвращенное значение указателя, скажем, PTR, и использовать его в последующих запросах:
readtext blobcolumn @PTR 115001 887