![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
кто как хранит документы Word в базе (любой)?
tchn © (2004-10-17 00:33:00)кто как хранит документы Word в базе (любой)?
и как потом их использует?
Submarine (2004-10-20 09:32:00) [1]>Axe немного сложный путь предлогаешь, да и ненужное, раньше у нас такая же лабуда была, неудобно. Хранение данных в БД наиболее рациональный путь, ведь есть поле Блоб (бинарный), где храниться содержимое файла, и стринговое поле где храниться имя файла, и нет ничего проще, чем извлечь файл и его либо просто отобразить в программе либо сохранить файл на диск.
vv_fran (2004-10-20 09:20:00) [2]to Axe - можно и так, но если документы в БД в BLOB, то легче переносить данные с сервера на сервер и защита от несанкционированного доступа повыше.
Axe (2004-10-19 18:31:00) [3]Документы в базе хранить не надо !!!
а если хочещь сделать по человечески то напиши
2 програмки клиент и сервер
_____________
причем клиенту юзверь указывает локальный путь до файла Word пищет коментарий и всё такое затем давит на кнопку сохранить(отправить)
_____________
клиент через любой протокол и порт соединяется с сервером через поток переливает пакет бинарных данных на сервер, а сервер кладет эти данные на винт а в базе сохраняет чей файл коментарий к файлу и куда файл сохранён.
________________
мы получили что пользователь не на свой винт не смог записать файл ну а когда достаь файл всё в обратной последовательноси.
Submarine (2004-10-18 10:20:00) [4]Хранить документы, очень просто и нужно, к примеру я храню шаблоны документов в бд. А работать просто, закачивай в блоб поле документ
queryBlob1.LoadFromFile(....)
а когда хочешь его извлечь то соответственно
queryBlob1.SavetoFile(....) и спокойно с ним работай..
malamba (2004-10-18 10:08:00) [5]КАк-то попробовал засадить пару докуметов в blob-поле Accessa 2000.
А у него нет так нываемого BLOB поля. Есть поле встроенного объекта, которое не удалось взять обычными методами.
Это я к чему: в Accesse Microsoft как всегда наваляла свои заморочки, которые, как бы повежлиее сказать, требуют дополнительных телодвижений.
Видел базу, которая целиком состоит из вуордовских документов.
Размер - за гигабайт.
vv_fran (2004-10-17 13:22:00) [6]В ДБ создаешь таблицу с полем 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
YurikGL (2004-10-17 13:13:00) [7]
> вот и спрашиваю, кто каким способом это делает, как помещает,
> как извлекает.
См пункт [3]
tchn (2004-10-17 13:08:00) [8]да хранят, хранят.
вот и спрашиваю, кто каким способом это делает, как помещает, как извлекает.
Sergey_Masloff (2004-10-17 10:38:00) [9]сергей1 (17.10.04 10:09) [4]
>да никто их так не хранит,
Еще как хранят.
сергей1 (2004-10-17 10:09:00) [10]>кто как хранит документы Word в базе (любой)?
да никто их так не хранит, потому-что глупость это. Хранят ссылкина эти файлы. Если-же тебе надо ограничить юзеров в доступе к винту, ну так и закрой право на запись на все, кроме папки с этими файлами
GanibalLector (2004-10-17 01:27:00) [11]к примеру, у пользователя нет прав писать на винт.
от Лукавого все это.
З.Ы. Как-как...в Blob-e тогда.
tchn (2004-10-17 01:24:00) [12]нада!
к примеру, у пользователя нет прав писать на винт.
GanibalLector (2004-10-17 01:10:00) [13]А зачем их хранить в базе??? Они себя хорошо чувствуют на винте.