powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Время записи в поле BLOB
11 сообщений из 11, страница 1 из 1
Время записи в поле BLOB
    #32114445
Sash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая проблемма, мне надо в базе хранить большие файлы (100~600 Мб)
Так вот все хорошо работает, только нужно как-то полузователю выдавать информайию о том сколько уже процентов записано в поле во время инсёрта.
Т.е. во время записи значения а BLOB вывводить что-то воде прогресс бара. Я знаю только объем данных записываемых в BLOB...

Помогите, кто знает...
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32114658
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
А куда пишем, если не секрет? ;-))

С уважением
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32114663
Фотография Jozo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробуй поискать компонеты каиенибудь в инете
точна не помню но LMD-Tools есть компонента LMDDBProgressBar
вроде должна помоч
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32114708
Dikobrazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй писать через буфер кусками
Примерно так (сам не проверял, но думаю, разберешся, что к чему):
Код: 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.
const BufSize =  128  *  1024 ; //размер буфера  128  Кб
procedure FileToBlob(FileName: string; Field: TBlobField; Progress: TProgressBar)
var
  BlobS: TBlobStream;
  FilesS: TFileStream;
  Sz: integer;
  ReadSz: integer;
  Buf: pointer;
begin
  Buf:=AllocMem(BufSize);
  FileS:=TFileStream.Create(FileName,fmOpenRead or fmShareDenyWrite);
  BlobS:=TBlobStream.Create(Field,bmWrite);
  BlobS.Seek( 0 ,soFromBeginning);
  Sz:=FileS.Size;
  Progress.Max:=Ceil(Sz/BufSize);
  Progress.Position :=  0 ;
  while true do
  begin
    ReadSz:=FileS.Read(@Buf,BufSize);
    if ReadSz= 0  then break;
    BlobS.Write(@Buf,ReadSz);
    Progress.Position := Progress.Position +  1 ;
  end;
  FileS.Free;
  BlobS.Free;
  FreeMem(Buf);
end;

Хотя вообще-то не очень хорошо в базе такие большие файлы хранить...
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32115503
Sash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу в поле Image MSSQL.

Последний ответ с кодом - замечательный, данные благополучно заносятся в поле, рисуется прогресс-бар, но как только делаю POST, опять приходится смотреть и ждать пока что-то не завершится.
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32115547
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно - пример показывает, как данные в параметр запихать, а на сервер то им дойти надо :)

А это уж никак не сделаешь - пока все не дойдет, ничего не узнаешь
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32115557
PiboDIE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra ну это тоже можно реализовать... В некоторых случаях...
Допустим если сервер тоже сам писал (т.е. своими ручками), то можно при передаче данных посылать размер(объем) данных, а когда данные переданы, то сервер должен проверить размер полученных данных, с переданной ему переменной, и в случае совпадения посылать ответ, что данные дошли успешно...
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32116016
DmitryV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Sash:
Тогда воспользуйся функциями TSQL WriteText, UpdateText. Создаешь хран. процедуру, которая принимает параметр и пишет его в поле image через UpdateText. Прогресс отслеживаешь на клиенте через количество обращений к ХП

Удачи
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32116019
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И будешь писать еще дольше
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32116355
Sash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ХП не катят, т.к. данная система работает и на основе MS Access 2002,
а там как я понимаю нет поддержки ХП.
...
Рейтинг: 0 / 0
Время записи в поле BLOB
    #32117065
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда выкини нафиг свою СУБД прежде....
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Время записи в поле BLOB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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