|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Здравствуйте, мне нужно хранить в базе exe файлы. есть таблица create table nametable ( id_tbl D_ID NOT NULL, file_bin BLOB ); Подскажите пожалуйста как вставить бинарный файл в базу firebird ? Возможно ли прочитать из базы exe-к и запустить его на исполнение ? Можно это сделать только через sql запрос или ibeblock ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:16 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Serega325Подскажите пожалуйста как вставить бинарный файл в базу firebird ? так же как и любой другой файл. Читай документацию по работе с BLOB к компонентам доступа с которыми ты работаешь. Serega325Возможно ли прочитать из базы exe-к и запустить его на исполнение ? на клиентской стороне возможно. Только на фига? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:21 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Serega325Можно это сделать только через sql запрос или ibeblock ? http://www.ibexpert.net/ibe/index.php?n=Doc.IbecExec ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:50 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Симонов ДенисТолько на фига?А что такого? Мы так делаем, вполне себе. Скомпилировал новую версию АРМа, вбросил базу, далее юзеры растащат по мере надобности, автоматически. Предлагаешь пару-тройку сотен экзешников разослать почтовыми голубями? Есть же база, там все и хранится и всем кому надо раздается. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 11:37 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyСимонов ДенисТолько на фига?А что такого? Мы так делаем, вполне себе. Скомпилировал новую версию АРМа, вбросил базу, далее юзеры растащат по мере надобности, автоматически. Предлагаешь пару-тройку сотен экзешников разослать почтовыми голубями? Есть же база, там все и хранится и всем кому надо раздается. +100500 Еще огромнейшый позитив - восттановил бекап 2-летней давности, и у тебя сразу есть все правильные версии бинарей для работы. И не надо помнить/хранить соответствия версии базы данных и соответствующие ей версии бинарников. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 12:02 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
У меня программа при старте проверяет наличие обновлений, при необходимости скачивает, себя переименовывает в old_имя.exe, и на свое место ставит новую версию. После чего предлагает запуститься повторно. При старте программы удаляю old_имя.exe ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 15:54 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Шавлюк ЕвгенийУ меня программа при старте проверяет наличие обновлений, при необходимости скачивает, себя переименовывает в old_имя.exe, и на свое место ставит новую версию. После чего предлагает запуститься повторно. При старте программы удаляю old_имя.exe У меня почти так же. Программа при запуске смотрит в базе версию. Если есть более новая чем сама - запускает лежащий рядом обновлятор, а сама завершается. Обновлятор коннектится к базе, выкачивает что сказано, кладет рядом, запускает то что скачал, сам завершается. Для юзерей обновление exe выглядит как некоторая задержка запуска с морганием окошка. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 10:29 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Вот, что получилось, но IbExpert виснет, когда размер файла >10 Мб . Как ibeblock или sql-ем прочитать exe-файл размера 50 - 100 Мб. set names win1251; set sql dialect 3; SET TERM ^; execute ibeblock as declare variable iVal BLOB; begin OdbcCon = ibec_CreateConnection(__ctODBC, 'DBNAME=localhost:c:\database.fdb; DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA;PWD=masterkey;Role=RDB$ADMIN;'); ibec_UseConnection(OdbcCon); FileName = 'f:\programm.exe'; FH = ibec_fs_OpenFile(FileName, __fmOpenRead); if (FH is null) then Exit; while (not ibec_fs_eof(FH)) do begin if (i<1) then iVal = ibec_fs_ReadByte(FH); else iVal = iVal || ibec_fs_ReadByte(FH); end ibec_fs_CloseFile(FH); insert into nametable(file_bin) values (:iVal); ibec_CloseConnection(OdbcCon); end^ SET TERM ;^ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 17:28 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Serega325, А почему бы загрузку-выгрузку делать не через IBEBlock, а напрямую из программы через блобы? По сабжу. Я не в курсе внутренностей IBExpert-a, но судя по названию функции (ibec_fs_ReadByte) файл считывается побайтово, что можеть быть довольно долго само по себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 17:42 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
Serega325, Ты с ума что-ли сошел читать побайтно и конкатенировать каждый байт с предыдущими? Это ж тормоза тормознутные! ibec_LoadFromFile используй. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 17:45 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
IBExpertТы с ума что-ли сошел Да ещё и через ODBC... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 18:15 |
|
хранение и чтение бинарных файлов в firebird
|
|||
---|---|---|---|
#18+
IBExpertSerega325, ibec_LoadFromFile используй. подставил эту функцию. ibec_LoadFromFile почему-то только один байт считывает. set names win1251; set sql dialect 3; SET TERM ^; execute ibeblock as declare variable iVal BLOB; begin OdbcCon = ibec_CreateConnection(__ctODBC, 'DBNAME=localhost:c:\database.fdb; DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA;PWD=masterkey;Role=RDB$ADMIN;'); ibec_UseConnection(OdbcCon); FileName = 'f:\programm.exe'; iVal = ibec_LoadFromFile(FileName); insert into nametable(file_bin) values (:iVal); commit; ibec_CloseConnection(OdbcCon); end^ SET TERM ;^ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 18:15 |
|
|
start [/forum/topic.php?fid=40&msg=39115155&tid=1562488]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 398ms |
0 / 0 |