Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
blob (большое и толстое)
|
|||
|---|---|---|---|
|
#18+
Как работать с блоб полями больших размеров (файлы по 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" иногда что-то другое не смог сейчас повторить. вопрос как это народ делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2002, 09:57 |
|
||
|
blob (большое и толстое)
|
|||
|---|---|---|---|
|
#18+
У ADODB.Field есть метод AppendChunk GetChunk посмотрите в MSDN как их использовать С уважением Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2002, 10:19 |
|
||
|
blob (большое и толстое)
|
|||
|---|---|---|---|
|
#18+
Ваще-то, "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 может здесь - более понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2002, 13:07 |
|
||
|
blob (большое и толстое)
|
|||
|---|---|---|---|
|
#18+
Так вот я примерно так и делаю: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 03:49 |
|
||
|
blob (большое и толстое)
|
|||
|---|---|---|---|
|
#18+
Я не знаток синтаксиса С++ (тем более классов MFC), но насколько я могу понять - в приведенной мной ссылке речь идет об использовании объекта Stream из библиотеки ADODB да еще и с предустановленным свойством Type = adTypeBinary , а не "голого" TFileStream из MFC? Да и загрузка в поле BLOB - идет через метод Update объекта Recordset , в который уже загружена запись, а не - через Command.Execute... Мой совет - попробуйте "дословно" повторить то, что предлагают мелко-мягкие в качестве примера, и если оно заработает - по шагам изменяйте куски кода, чтобы получить либо то, что вам действительно надо, либо - ошибку, с которой вы сами и разберетесь... Удачи!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 06:53 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32023279&tid=1823854]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
132ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 469ms |

| 0 / 0 |
