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

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

С уважением
...
Рейтинг: 0 / 0
05.03.2003, 09:20
    #32114663
Jozo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время записи в поле BLOB
Пробуй поискать компонеты каиенибудь в инете
точна не помню но LMD-Tools есть компонента LMDDBProgressBar
вроде должна помоч
...
Рейтинг: 0 / 0
05.03.2003, 11:15
    #32114708
Dikobrazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время записи в поле BLOB
Попробуй писать через буфер кусками
Примерно так (сам не проверял, но думаю, разберешся, что к чему):
Код: 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
06.03.2003, 13:18
    #32115503
Sash
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время записи в поле BLOB
Пишу в поле Image MSSQL.

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

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

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


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