Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

кто как хранит документы Word в базе (любой)?   Найти похожие ветки 

 
tchn   (2004-10-17 00:33) [0]

кто как хранит документы Word в базе (любой)?
и как потом их использует?


 
GanibalLector ©   (2004-10-17 01:10) [1]

А зачем их хранить в базе??? Они себя хорошо чувствуют на винте.


 
tchn   (2004-10-17 01:24) [2]

нада!
к примеру, у пользователя нет прав писать на винт.


 
GanibalLector ©   (2004-10-17 01:27) [3]

к примеру, у пользователя нет прав писать на винт.
от Лукавого все это.

З.Ы. Как-как...в Blob-e тогда.


 
сергей1   (2004-10-17 10:09) [4]

>кто как хранит документы Word в базе (любой)?

да никто их так не хранит, потому-что глупость это. Хранят ссылки на эти файлы. Если-же тебе надо ограничить юзеров в доступе к винту, ну так и закрой право на запись на все, кроме папки с этими файлами


 
Sergey_Masloff   (2004-10-17 10:38) [5]

сергей1   (17.10.04 10:09) [4]
>да никто их так не хранит,
Еще как хранят.


 
tchn   (2004-10-17 13:08) [6]

да хранят, хранят.
вот и спрашиваю, кто каким способом это делает, как помещает, как извлекает.


 
YurikGL ©   (2004-10-17 13:13) [7]


> вот и спрашиваю, кто каким способом это делает, как помещает,
> как извлекает.

См пункт [3]


 
vv_fran   (2004-10-17 13:22) [8]

В ДБ создаешь таблицу с полем BLOB и работаешь. Типа так извлекаем в OleConteiner:
  try
  Screen.Cursor := crHourGlass;
   with dmMain.quGetBlob do
   begin
   Close;
   SelectSQL.Clear;
   SelectSQL.Add("SELECT BLOBBIN FROM INHFOTO");
   SelectSQL.Add("WHERE REC_NO = "+IntToStr(nRecBlob));
   Open;
   Edit;
   A := CreateBlobStream(FieldByName("BLOBBIN"), bmRead);// as TBlobField
   A.Position := 0;
   B := TMemoryStream.Create;
   B.LoadFromStream(A);
   B.Position := 0;
   B.SaveToFile(gsCurrDir+"Tmpfiles\"+sFileNameBlob);
   B.Position := 0;
   fuSetMenuBlob;
         Blob_Ole.CreateObjectFromFile(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlob,False);
         Blob_Ole.Visible := True;
   Close;
   end;//with dmMain.quGetBlob

  finally
  DeleteFile(gsCurrDir+"Tmpfiles\"+sFileNameBlob);
  B.Free;
  A.Free;
  Screen.Cursor := crDefault;
  end;//try

И сохраняем:
Blob_Ole.SaveAsDocument(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlobNew);
     with dmMain do begin
     quInsert.Close;
     quInsert.SQL.Clear;
     quInsert.SQL.Add("UPDATE INHFOTO SET ");
     quInsert.SQL.Add("BLOBBIN = :BLOBBIN, FILENAME = :FILENAME");
     quInsert.SQL.Add("WHERE REC_NO = "+IntToStr(nRec));
     quInsert.ParamByName("BLOBBIN").LoadFromFile(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlobNew)
     quInsert.ParamByName("FILENAME").AsString := trim(copy(sFileNameBlobNew,1,100));
       try
       quInsert.ExecQuery;
       Tr_Insert.Commit;
       except
       Tr_Insert.Rollback;
       ShowMessage("Не могу !");
       end;
     end;//with


 
malamba   (2004-10-18 10:08) [9]

КАк-то попробовал засадить пару докуметов в blob-поле Accessa 2000.
А у него нет так нываемого BLOB поля. Есть поле встроенного объекта, которое не удалось взять обычными методами.

Это я к чему: в Accesse Microsoft как всегда наваляла свои заморочки, которые, как бы повежлиее сказать, требуют дополнительных телодвижений.

Видел базу, которая целиком состоит из вуордовских документов.
Размер - за гигабайт.


 
Submarine   (2004-10-18 10:20) [10]

Хранить документы, очень просто и нужно, к примеру я храню шаблоны документов в бд. А работать просто, закачивай в блоб поле документ
queryBlob1.LoadFromFile(....)
а когда хочешь его извлечь то соответственно
queryBlob1.SavetoFile(....) и спокойно с ним работай..


 
Axe   (2004-10-19 18:31) [11]

Документы в базе хранить не надо !!!
а если хочещь сделать по человечески то напиши
2 програмки клиент и сервер
_____________
причем клиенту юзверь указывает локальный путь до файла Word пищет коментарий и всё такое затем давит на кнопку сохранить(отправить)
_____________
клиент через любой протокол и порт соединяется с сервером через поток переливает пакет бинарных данных на сервер, а сервер кладет эти данные на винт а в базе сохраняет чей файл коментарий к файлу и куда файл сохранён.
________________
мы получили что пользователь не на свой винт не смог записать файл ну а когда достаь файл всё в обратной последовательноси.


 
vv_fran   (2004-10-20 09:20) [12]

to Axe - можно и так, но если документы в БД в BLOB, то легче переносить данные с сервера на сервер и защита от несанкционированного доступа повыше.


 
Submarine   (2004-10-20 09:32) [13]

>Axe   немного сложный путь предлогаешь, да и ненужное, раньше у нас такая же лабуда была, неудобно. Хранение данных в БД наиболее рациональный путь, ведь есть поле Блоб (бинарный), где храниться содержимое файла, и стринговое поле где храниться имя файла, и нет ничего проще, чем извлечь файл и его либо просто отобразить в программе либо сохранить файл на диск.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.032 c
3-1098783606
OlegL
2004-10-26 13:40
2004.11.21
CleintDataSet


14-1098512111
kaif
2004-10-23 10:15
2004.11.21
Мне надоела ложь против демократии и рынка!


8-1092890702
MOZZZ
2004-08-19 08:45
2004.11.21
Фоновая музыка


14-1099565233
КаПиБаРа
2004-11-04 13:47
2004.11.21
Оформление заголовков модулей


1-1099469917
Rinst
2004-11-03 11:18
2004.11.21
Ошибка компиляции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский