Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IntraWeb и БД [D7, MSSQL]


logslava ©   (2006-06-28 14:25:00) 

В базе лежат вордовские файлы..
Как с помощью ИнтраВеб сохранить их на диск удаленной машины?

Что делаю:
- Подключаюсь через БДЕ т.к. АДО не работает (просто привык к АДО)
- Запросом ТАДОКвиари выбираю нужную запись в таблице БД
- Дальше для соответствующего блоб-поля вызываю SaveToFile(...) тем самым хочу сделать времменый файл на сервере, который затем даунлоадить буду
- после этого смотрю: на винче лежит мой "темп.док", но  открыть его с помощью ворда не получается, говорит "неверно указано имя или сетевой путь"

Кстати в примерах Делфи\Демос\ИнтраВеб.. даунлоад показан, но не работает (?)

Если те же операции делать через АДО - все нормально - файл сохраняется...

Сталкивался ли кто с подобным?


logslava   (2006-06-28 15:59:00) [1]

Desdechado ©   (28.06.06 15:34) [4]

> Ты пытаешься запустить программу с сетевого диска и надеешься,
>  что для нее темп будет темпом сервера

не понимаю тебя, а может не понимаю технологию...

Программу я запускаю там, где она лежит, где она компилилась (здесь же кстати стоит и СУБД и сама БД), никаких сетевых дисков нет. Подключение идет через
http://127.0.0.1:3333(например так)
в данном случае подключение с моего компа  отличается от подключения с другого компа?

Дальше я пишу
QueryField.SaveToFile('C:\Temp\temp.doc')
Это сетевой путь? По моему мнению (может и ошибочному) - локальный.
Значит: локально сохраняю файл из базы (пока о сети речи нет)
Я могу его посмотреть?


logslava   (2006-06-28 15:35:00) [2]


> перекинуть данные в поток вывода

это QueryField.SaveToStream(...)? а как дальше

> перекинуть данные в поток вывода -Response (указав контент
> на ворд апп.).

Response - это чей метод?


Desdechado   (2006-06-28 15:34:00) [3]

> сервером зову комп, где лежит ЕХЕшник, база и вся эта катавасия делается
Не понял. Ты пытаешься запустить программу с сетевого диска и надеешься, что для нее темп будет темпом сервера? Наивный. Выполнение идет у тебя (кстати, и БДЕ тоже у тебя должен для этого быть), поэтому и темп будет твой. Из него и открывай, что мешает? И никаких дополнительных пересылок, скачек и прочего.


saxon   (2006-06-28 15:21:00) [4]


> ему не обязательно его качать ...
> показать док прямо в IE

В любом случае это называеться "скачать". А уж сохранит он или нет - проблемма - клиента.


> предварительно его не сохранить во временный файл?

технология примерно такая:
при запросе считать файл из базы, перекинуть данные в поток вывода -Response (указав контент на ворд апп.).


logslava   (2006-06-28 15:06:00) [5]

АДОКвиари - естесно опечатался: TQuery

сервером зову комп, где лежит ЕХЕшник, база и вся эта катавасия делается

А каким образом можно выудить из БД файл и переслать его пользователю, если предварительно его не сохранить во временный файл? На самом деле нужно только показать пользователю этот доковский документ, т.е. ему не обязательно его качать и сохранять у себя.. Было бы идеально показать док прямо в IE, да вот беда не знаю как это сделать..

Пока алгоритм такой, какой описал в первом посте.

Про АДО говорю что в Intrawebне работает, а в простом Аппликэйшене - все нормально.


Desdechado   (2006-06-28 14:46:00) [6]

> Подключаюсь через БДЕ т.к. АДО не работает
> Запросом ТАДОКвиари выбираю нужную запись в таблице БД
Это как? Подключение к БД одной технологией, а запрос - другой? Чего-то не так в датском королевстве...

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

> после этого смотрю: на винче лежит мой "темп.док"
Значит, сохранял именно туда, а не на сервер.

> Если те же операции делать через АДО - все нормально
Ты ж говоришь, что через адо не работает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо