Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/55: Рейтинг темы: голосов - 55, средняя оценка - 4.51
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220

BLOB поле записать в файл

13.11.2015, 13:16. Показов 10860. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите есть BLOB поле, которое я пытаюсь считать в файл,
C++
1
2
3
4
5
6
 TStream *blob=Table1->CreateBlobStream(Table1->FieldByName("Data"),bmWrite);
      blob->Seek(0, soFromBeginning);
      TFileStream *stream = new TFileStream ("d:\\Data.doc", fmOpenReadWrite);
      blob->CopyFrom(stream, stream->Size);
      delete blob;
      delete stream;
Но в результате ошибка плана
Миниатюры
BLOB поле записать в файл  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2015, 13:16
Ответы с готовыми решениями:

Записать файл в blob-поле
Привет Всем! Скажите пожалуйста, как записать файл .doc в blob поле?

Как записать файл в BLOB-поле через TpFIBDataset?
Приветствую! Собственно сабж. Использую FIBPlus 7.5, FIrebird 2.5 Embeded. Добавлено через 58 минут Да, забыл уточнить, пишу на...

Как записать Blob поле в DBF таблицу ?
Работаю с ADO, драйвер соединения: ODBC. Создал DBF файл "PR" , в нём поле "Picture" типа OLEOBJECT. Есть связанная с ним ADO...

10
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.11.2015, 14:18
C++
1
dynamic_cast<TBlobField*>(Table1->FieldByName("Data"))->LoadFromFile("d:\\Data.doc");
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
13.11.2015, 14:35  [ТС]
Ты бы хоть обьяснил к чему это применять, это blob= тогда зачем LoadFromFile

Если не сложно код в студию, а то запарился я
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.11.2015, 14:38
Игорь1986, извини, неправильно понял тему. Если у тебя в поле "Data" действительно хранится .doc файл, тогда
C++
1
dynamic_cast<TBlobField*>(Table1->FieldByName("Data"))->SaveToFile("d:\\Data.doc");
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
13.11.2015, 14:41  [ТС]
Ну опять немного не так, у меня в поле "Data" хранятся данный типа BLOB, и их хочу кинуть в файл
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.11.2015, 14:44
ну так я тебе дал код, пробуй
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
13.11.2015, 14:51  [ТС]
C++
1
2
3
4
5
TBlobField *bf = dynamic_cast<TBlobField *>
                  (ADOQuery1->FieldByName("Data"));
AnsiString path = ExtractFilePath(Application->ExeName) +"d:\\Data.doc" ;
bf->SaveToFile(path );
ADOQuery1->Next();
Вот придумал
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.11.2015, 14:54
Цитата Сообщение от Игорь1986 Посмотреть сообщение
Вот придумал
а я тебе о чем говорил
1
5 / 22 / 1
Регистрация: 24.11.2015
Сообщений: 165
04.03.2019, 23:13
Для Делфи:

Вы забыли это:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    DataSource1.DataSet.Insert;
    DataSource1.DataSet.Post;
 
 
// Загружаем из файла ener_40L100.pdf в поле Blob (или любой другой бинарный файл)
procedure TForm1.Button2Click(Sender: TObject);
begin
    DataSource1.DataSet.Insert;
    TBlobField(Table1.FieldByName('DXF_SAKAS')).LoadFromFile('E:\Sakasi\Заказчик\Energy\UP_40\ener_40L1.pdf');
    DataSource1.DataSet.Post;
end;
 
// Пишем из поля Blob в файл ener_40L100.pdf (или в любой другой бинарный файл)
procedure TForm1.Button300Click(Sender: TObject);
begin
   TBlobField(Table1.FieldByName('DXF_SAKAS')).SaveToFile('E:\Sakasi\Заказчик\Energy\UP_40\ener_40L100.pdf');
end;
Спасибо.
0
5 / 22 / 1
Регистрация: 24.11.2015
Сообщений: 165
05.03.2019, 13:18
СОРРИ ОШИБСЯ:
TABLE1 И DATASOURCE1.DATASET НУЖНО ПОМЕНЯТЬ МЕСТАМИ:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Загружаем из файла любого типа в поле Blob
procedure TForm1.Button2Click(Sender: TObject);
var
  S, S_N:string;
 
begin
      if OpenDialog_Rar.Execute then
      BEGIN
          S := OpenDialog_Rar.FileName;
          S_N:=ExtractFileName(OpenDialog_Rar.FileName);
    Table1.Edit;
    TBlobField(DataSource1.DataSet.FieldByName('DXF_SAKAS')).LoadFromFile(S);
       DBGrid1.DataSource.DataSet.FieldByName('File_Rar').AsString:=S_N; // сохраним имя файла для правильности его 
                                                                                                                 // извлечения
    Table1.Post;
    END;
end;
 
// Пишем из поля Blob в файл File_Blob.rar
procedure TForm1.Button300Click(Sender: TObject);
var
  S_N:string;
begin
   if DBGrid1.DataSource.DataSet.FieldByName('File_Rar').AsString<>'' then
   begin
       S_N := DBGrid1.DataSource.DataSet.FieldByName('File_Rar').AsString; // вытащим под тем именем что и сохраняли в БД
       TBlobField(DataSource1.DataSet.FieldByName('DXF_SAKAS')).SaveToFile('E:\PETROVICH_CYBD\File_BlobWrite\'+S_N);
   end
   else
      showmessage('В этой строке файлы не прикреплены!!!');
end;
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,371
Записей в блоге: 3
06.03.2019, 17:07
basil_cat, БЛИН!!! Ну зачем же Вы лезете в тему 4-хлетней давности, да еще с чудовищным кодом на другом ЯП?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2019, 17:07
Помогаю со студенческими работами здесь

Как записать динамический объект в поле типа BLOB
Можно ли записать существующий динамический объект (например, список) в поле типа BLOB, а потом, по необходимости, извлечь его оттуда.

Нужно сохранить поле Blob на машину клиента в виде файла и потом открыть этот файл
Люди, помогите. Вот пишу я на АСП, использую JScript. Мне нужно сохранить поле Blob на машину клиента в виде файла и потом открыть этот...

Как записать bmp-файл в поле БД Paradox?
Сделал как ты написал, отредактировал редактором поле, сделал поле Table1Foto procedure var Table1Foto: TField; &lt;== это я...

blob поле
Здравствуйте ! немного непонятно с blob полями.. Пусть есть БД с несколькими таблицами. (см. РИС). КАК мне добавить blob поле и номер...

Вытащить BLOB поле
Привет! Помогите пожалуйста, не хватает знаний. Есть таблица в ней поле определено типа BLOB В PL\SQL открываю таблицу , двойным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru