powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / blob (большое и толстое)
6 сообщений из 6, страница 1 из 1
blob (большое и толстое)
    #32023084
leha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как работать с блоб полями больших размеров (файлы по 600 -700 Мb) втыкаю в базу так :
ADOtmp->Close();
ADOtmp->SQL->Clear();
ADOtmp->SQL->Add("UPDATE doc ");
ADOtmp->SQL->Add(abuf.sprintf("SET num = '%s' ",doc_num.c_str()));
ADOtmp->SQL->Add(abuf.sprintf(", name = '%s' ",Trim(Edit1->Text).c_str()));
ADOtmp->SQL->Add(abuf.sprintf(", id_doc = '%d' ",id_doc));
ADOtmp->SQL->Add(abuf.sprintf(", id_gr = '%d' ",id_doc));
ADOtmp->SQL->Add(abuf.sprintf(", main = %s ",":file"));
ADOtmp->SQL->Add(abuf.sprintf("WHERE (id = %d) ",id_doc));
ADOtmp->Parameters->ParamByName("file")->LoadFromFile(OpenDialog1->FileName,ftBlob);
ADOtmp->ExecSQL();
база MS SQL2000, поле Image, этот кусок нормально отрабатывает при файлах мегов 14 иначе вываливается ошибка на строчке LoadFromFile "Error creeating vaeiant array" иногда что-то другое не смог сейчас повторить. вопрос как это народ делает.
...
Рейтинг: 0 / 0
blob (большое и толстое)
    #32023089
SergD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У ADODB.Field есть метод AppendChunk GetChunk посмотрите в MSDN как их использовать
С уважением Сергей.
...
Рейтинг: 0 / 0
blob (большое и толстое)
    #32023266
leha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотрел но просвятления не наступило
...
Рейтинг: 0 / 0
blob (большое и толстое)
    #32023279
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваще-то, "AppendChunk GetChunk" - довольно старенькое старье... (это мелко-мягкие и сами признают):
\nThe previous versions of ADO [ 2.0, 2.1, and 2.1 SP2 ] required careful usage of the GetChunk and AppendChunk methods of the Field Object to read and write BLOB data in fixed-size chunks from and to a BLOB column.


Посмотрите - вот это:
http://support.microsoft.com/default.aspx?scid=kb;RU;q258038

может здесь - более понятно...
...
Рейтинг: 0 / 0
blob (большое и толстое)
    #32023332
leha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот я примерно так и делаю:
if (OpenDialog1->Execute()) {
Stream= new TFileStream(OpenDialog1->FileName,fmOpenRead);
ADOsend->Close();
ADOsend->SQL->Clear();
ADOsend->SQL->Add("insert into test(name,main)");
ADOsend->SQL->Add("values(:name,:file)");
ADOsend->Parameters->ParamByName("name")->Value=ExtractFileName(OpenDialog1->FileName);
ADOsend->Parameters->ParamByName("file")->LoadFromStream(Stream,ftBlob);
ADOsend->ExecSQL();
Stream->Free();
}
но получаю ошибку Error creating variant array
...
Рейтинг: 0 / 0
blob (большое и толстое)
    #32023336
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаток синтаксиса С++ (тем более классов MFC), но насколько я могу понять - в приведенной мной ссылке речь идет об использовании объекта Stream из библиотеки ADODB да еще и с предустановленным свойством Type = adTypeBinary , а не "голого" TFileStream из MFC?

Да и загрузка в поле BLOB - идет через метод Update объекта Recordset , в который уже загружена запись, а не - через Command.Execute...

Мой совет - попробуйте "дословно" повторить то, что предлагают мелко-мягкие в качестве примера, и если оно заработает - по шагам изменяйте куски кода, чтобы получить либо то, что вам действительно надо, либо - ошибку, с которой вы сами и разберетесь...

Удачи!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / blob (большое и толстое)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]