Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 12.10.2010, 14:29
eldaeron eldaeron вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 15
Репутация: 10
По умолчанию

все, вроде как работает...
вобщем сделал так
Код:
procedure dbst_save_lob( 
  id in number
 ,blb in blob
) is
  len     BINARY_INTEGER;
begin
  if loc is null then 
    begin
      update test_lob set ORIG_FILE=EMPTY_BLOB (); 
      select ORIG_FILE into loc from test_lob where TEST_ID=1 for update;
      --prog_debug_info_save('старт');
    end;
  end if;  
  if loc is not null then
    begin 
      len := length(blb);
      if len<>32000 then
        begin
          dbms_lob.writeappend(loc, len, blb);
          update test_lob set ORIG_FILE=loc where TEST_ID=1;
          --prog_debug_info_save('финиш');
        end;
      else
        dbms_lob.writeappend(loc, len, blb);
      end if;  
    end;
  end if;
end;
loc это глобальная пакетная переменная - локатор, ставится в null при записи нового файла. и пока надцать раз вызывается процедура не меняется. в итоге всего один селект чтоб инициализировать локатор и всего один update при получении последней части файла. есть конечно одно но, вполне возможно, что когда нибудь, кто нибудь, попытается залить файл, размер которого будет кратен 32000 байт... вот тут то кривые руки и всплывут)) надо еще подумать...
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025