Реферат: Работа с объектами большого объема в MS SQL и ADO

TESTHR(fld->put_Value(v));

//Сохраняем изменения в БД

TESTHR(rs->Update(vtMissing,vtMissing));

}

catch(_com_error& e){

MessageBox(e.Description(),_T("Error"),MB_ICONERROR);

}

return;

}

Чтобы максимально упростить пример, я использовал исключения вместо анализа кодов ошибок и стандартный класс _com_error, который определен в файле comutil.h.

Кроме этого, в примере нет кода открытия соединения, так как предполагается, что в момент вызова этой функции соединение с БД уже открыто (глобальная переменная conn).

При чтении данных типа text или ntext, тип варианта будет VT_BSTR. Я не думаю, что с ним могут возникнуть какие-либо проблемы.

ПРИМЕЧАНИЕ

В случае бинарных данных тип варианта VT_ARRAY|VT_UI1.

Теперь давайте рассмотрим метод добавления бинарных данных в базу с помощью хранимых процедур.

Хранимые процедуры и ADO.NET

Наша процедура будет выглядеть следующим образом:

create proc AddBlob(@img image)

as

insert into blob_test(img) values(@img)

К счастью, в ADO.NET работа с потоками не слишком изменилась (их по-прежнему нужно откручивать назад).

Алгоритм загрузки графического файла с диска в базу может быть таким:

Получаем имя файла.

Открываем соединение.

Создаем объект FileStream.

Читаем данные из файла.

Создаем объект SqlCommand для вызова хранимой процедуры.

Одному из параметров передаем считанные данные.

Вызываем метода ExecuteNonQuery объекта SqlCommand.

К-во Просмотров: 671
Бесплатно скачать Реферат: Работа с объектами большого объема в MS SQL и ADO