Форум » [x]Harbour » Как правильно считать бинарные файлы в базу ? » Ответить

Как правильно считать бинарные файлы в базу ?

Andrey: Всем привет. Подскажите пожалуйста как правильно считать бинарные файлы (ZIP, DOC, EXE) и записать в базу в поле типа BLOB (или это можно делать в простое мемо-поле FPT) ? И как сделать обратную операцию, записать из поля в бинарный файл ? Заранее спасибо за помощь....

Ответов - 6

Dima: Сделать это не проблема но чую антивирус даст тебе прикурить по полной

Andrey: Dima пишет: Сделать это не проблема Как ? FileStr() можно использовать для бинарных файлов или нет ? Или нужно использовать низкоуровневое чтение, типа: nFileHandle := FOpen( cFile, FO_READ ) nFileSize := FSeek( nFileHandle, 0, FS_END ) cStream := Space( nFileSize ) FSeek( nFileHandle, 0, FS_SET ) FRead( nFileHandle, @cStream, nFileSize ) FClose( nFileHandle ) а там далее типа: FIELD->POLEBLOB := cStream И какое ограничение на буфер в Харборе есть ? 100 Мб можно сразу считать или нет ?

PSP: Андрей, проверь: http://www.harbourminigui.com/clipperng/ng1583f.php http://www.harbourminigui.com/clipperng/ng1439e.php


Sergy: Andrey пишет: FileStr() можно использовать для бинарных файлов или нет ? А кто запретит: FUNC Main() STRFILE(FILESTR("1.exe"),"2.exe") RETURN 1.exe - тестовый пример Harbour размером 1360Kb, скопировался без единого писка в 2.exe 2.exe - запустился, как ни в чем не бывало После Clipper глаза вылезают от такого размаха...

Andrey: Sergy пишет: После Clipper глаза вылезают от такого размаха... Это точно... PSP пишет: Андрей, проверь: То что надо. Спасибо ! Для работы с BLOB как нужно объявлять в начале программы, т.е. какой драйвер базы использовать ?

Dima: Andrey пишет: какой драйвер базы использовать DBFBLOB вероятно [pre2] + added new RDD DBFBLOB compatible with CL5.3 DBFBLOB It operates on memo files only (.dbv) without tables (.dbf) To create .DBV file use: dbCreate( cFile, {}, "DBFBLOB" ) [/pre2]



полная версия страницы