powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / BLOB INTERBASE
16 сообщений из 16, страница 1 из 1
BLOB INTERBASE
    #32511299
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите (покажите!) пример как-нибудь можно работать с BLOB-полями через QUERY(insert,update),а то в книгах все примеры с TABLE ю
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32511399
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL: INSERT INTO TABLE(ID, BLOB_FIELD) VALUES(:ID, :BLOB_FIELD)

Пишешь:
ibquery.paramBYName('BLOB_FIELD').LoadFromStream(Your_stream);

В поток предварительно заносишь нужные данные
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32511585
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал и так ,и этак в примерах к Делфе все вроде тоже правильно написано, НО НЭ РАБОТАЕТ! Поэтому и прошу ЖИВОЙ ПРИМЕР! (То есть кусочек кода функционирующего)
На "LoadFromStream(Your_stream)" Делфи обматерилась 125 раз, то не устраивает тип, то параметры. Не поленился списал с Хелпа целиком несколько образцов кода (чтобы не было вопросов по версии Делфи)
ничерта не работает....
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32512499
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIBTable.Fields.FieldByName('BOLB_FIELD').LoadFromStream(Stream: TStream)

- работает!

П.С. Можно попробовать заменить прокладку между ушей.
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32512811
Scream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Дельфе не пишу, могу кусок своего кода на Билдере подогнать.
Надо?

--
LET`S ROCK!
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513214
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пимер из Buildera, как записать в BLOB картинку из TImage:

Код: plaintext
1.
2.
3.
TMemoryStream *s = new TMemoryStream();
        Image1->Picture->Bitmap->SaveToStream(s);
        IBQuery1->IBQuery1IMAGE->LoadFromStream(s);
        IBQuery1->Post();
ЗЫ: IMAGE - поле BLOB
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513302
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TTable мне нужен как козе стоп-сигнал , так же как и Query в режиме LifeUpdate (так любой сбой по питанию завалит мне базу) интересует именно поток и тому подобное ,что бы минимизировать время захвата базы
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513306
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TTable мне нужен как козе стоп-сигнал , так же как и Query в режиме LifeUpdate (так любой сбой по питанию завалит мне базу) интересует именно поток и тому подобное ,что бы минимизировать время захвата базы
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513310
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TTable мне нужен как козе стоп-сигнал , так же как и Query в режиме LifeUpdate (так любой сбой по питанию завалит мне базу) интересует именно поток и тому подобное ,что бы минимизировать время захвата базы
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513368
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё раз, слабО?!
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513370
Scream
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barsuk:
Какой сбой питания??? Ты о транзакциях что-нибудь слышал?
IGORRR , по-моему, привел отличный пример работы с BLOB `ом... Так и надо.
А после Post () (или в OnPost ) даешь CommitRetaining () - и можешь иметь ввиду все сбои питания вместе взятые.

--
LET`S ROCK!
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513427
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barsuk - это akuz :-)
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32513952
barsuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IGGOR-ю спасибо , це фраза была wadman-у .
В общем я нашел где яйца прятались (для кверей надо было ОБЯЗАТЕЛЬНО указывать СубТип блоба) и все поперло как надо .
Теперь следующий вопрос: в блоб надо пихать данные причем это будет и Word , и Excel, и рисунки.Пока есть мысля через ALЁ-контейнер, если кто может поделиться опытом будьте любезны!
P.S.Про Commit and транзакции хорошо было сказано, но проблемма была в том,что в приводимом примере все работало только в ON-LINE (это и есть захват базы - "рекорда") RequestLife , а этот режим обещает много интересного для админа. Вообще интересно было бы пообщаться с людьми которые вживую ведут задачи, а не теоретически по учебнику дают советы не попробовав даже скомпилить свои мысли.
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32514039
Фотография Kull Damned
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно я?! Вроде иногда программлю... Правда все время от BOL и DevGuide с LangRef'ом голову не отрываю, да и Delphi Help очень пособляет... В общем держи кусок кода, который реально юзался (правда не долго - дня два)... ;) Будешь по примерам учиться, если хельп не прёть...

Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
procedure TfrmObjects.btnAdditClick(Sender: TObject);
const
  Sec: TSecurity = [ 0 ];
var
  MemStrm: TMemoryStream;
  ImgJPG: TJpegImage;
begin
  if (not(gUser.ACC in Sec))or(not DM.dbAddit.Connected) then Exit;
  Refr:=_bF;
  AFill;
  if F_DlgPanel.ShowDock(Caption+' - [дополнительно]',Self,pnlObjectA,_nil)=mrOk then
    begin
      try
        DM.trMultiA.Active:=_bT;
        DM.qryMultiA.SQL.Clear;
        if (imgPS.Picture.Graphic.Empty)and(imgPB.Picture.Graphic.Empty)and(memACOMM.Lines.Text=_sNul)
          then DM.qryMultiA.SQL.Add('DELETE FROM ADDOB WHERE ID_OB='+qryObjectsID_OB.AsString)
          else
            begin
              if qryObjectsA.IsEmpty
                then DM.qryMultiA.SQL.Add('INSERT INTO ADDOB (ID_OB, PS, PB, COMM) VALUES ('+qryObjectsID_OB.AsString+', :PS, :PB, :COMM)')
                else DM.qryMultiA.SQL.Add('UPDATE ADDOB SET PS=:PS, PB=:PB, COMM=:COMM WHERE ID_OB='+qryObjectsID_OB.AsString);
              MemStrm:=TMemoryStream.Create;
              ImgJPG:=TJpegImage.Create;
              if imgPS.Picture.Graphic.Empty
                then DM.qryMultiA.ParamByName('PS').Clear
                else
                  begin
                    ImgJPG.Assign(imgPS.Picture.Graphic);
                    ImgJPG.SaveToStream(MemStrm); MemStrm.Position:=_iZero;
                    DM.qryMultiA.ParamByName('PS').LoadFromStream(MemStrm,ftBlob);
                  end;
              if imgPB.Picture.Graphic.Empty
                then DM.qryMultiA.ParamByName('PB').Clear
                else
                  begin
                    MemStrm.Clear;
                    ImgJPG.Assign(imgPB.Picture.Graphic);
                    ImgJPG.SaveToStream(MemStrm); MemStrm.Position:=_iZero;
                    DM.qryMultiA.ParamByName('PB').LoadFromStream(MemStrm,ftBlob);
                  end;
              if memACOMM.Lines.Text=_sNul
                then DM.qryMultiA.ParamByName('COMM').Clear
                else
                  begin
                    MemStrm.Clear;
                    memACOMM.Lines.SaveToStream(MemStrm); MemStrm.Position:=_iZero;
                    DM.qryMultiA.ParamByName('COMM').LoadFromStream(MemStrm,ftBlob);
                  end;
              ImgJPG.Free;
              MemStrm.Free;
            end;
        DM.qryMultiA.ExecSQL;
        DM.trMultiA.Commit;
        Refr:=_bT;
      except
        DM.trMultiA.Rollback;
        if ImgJPG<>_nil then ImgJPG.Free;
        if MemStrm<>_nil then MemStrm.Free;
      end;
    end;
end;
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32514238
Queen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот здесь http://hiprog.com/vb/article.asp?id=324
описано как работать с этим из VBA
Если подправить под ADO и юзать IBпровайдер то работает, типа проверенно..
...
Рейтинг: 0 / 0
BLOB INTERBASE
    #32516260
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь следующий вопрос: в блоб надо пихать данные причем это будет и Word , и Excel, и рисунки.Пока есть мысля через ALЁ-контейнер, если кто может поделиться опытом будьте любезны!

Не связывайся. Я про контейнер. Не знаю, как Excel, но с Word-ом у меня возникли неразрешимые проблемы (с моей точки зрения), когда работаешь с несколькими экземплярами Word - документа. Я недавно по этому поводу у "обчества" (SQL.RU, RSDN.RU etc.) спрашивал - никто не решил. Можешь поискать, прочитай. Я решил вопрос по другому - использую TWordApplication, в пределах приложения веду пул подключений, и при обработке "своих" документов перехватываю попытку сохранения документа (нажатия на кнопку Save и т.д.), и сохраняю документ во временный файл, а затем - в базу.
При закрытии приложения - все "мои" Word - документы сохраняются в базу и закрываюся, а "не мои" (ну, открытие не из моего приложения) - остаются открытими. И никаких ограничений по поводу экспортируемых методов COM - сервером в OLE - контейнер (ну, например, в контейнере не реботает "Preview").
Думаю, что для Excel можно было бы подобным образом сделать.

P.S.Про Commit and транзакции хорошо было сказано, но проблемма была в том,что в приводимом примере все работало только в ON-LINE (это и есть захват базы - "рекорда") RequestLife , а этот режим обещает много интересного для админа. Вообще интересно было бы пообщаться с людьми которые вживую ведут задачи, а не теоретически по учебнику дают советы не попробовав даже скомпилить свои мысли.
1. Ну, какой - то ты грубиян. Я уверен, что большинство присутсвующих на форуме как раз ведет задачи "вживую".
2. По поводу RequestLive. Пора забыть про BDE. IBX, FIBPlus. Просто обалдеть, как все просто и здорово.
3. Купи книжку. Даже если у тебя уже одна есть. Например:
А.Ковязин, С.Востриков. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil. Второе издание.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / BLOB INTERBASE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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