Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в файл на клиенте. Возможно ли такое? 
:(
    Опции темы
VIAcom
Дата 1.7.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



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

Например я хочу скинуть текстовый файлик - отчет к себе на винчестер, а не на винт сервера, с которого инфу кстати еще не факт, что посмотреть сможешь ...

И еще вопрос можно ли читать файлы с клиента? Я работал только с UTL_FILE ... может есть еще пакеты?

Заранее спасибо.
PM MAIL ICQ   Вверх
LSD
Дата 1.7.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(VIAcom @ 1.7.2005, 17:47)
Например я хочу скинуть текстовый файлик - отчет к себе на винчестер, а не на винт сервера, с которого инфу кстати еще не факт, что посмотреть сможешь ...

Так в чем проблема? Берешь из клиентского приложения и скидываешь данные на винт. Или ты хочешь чтобы сервер тебе лез на клиентскую машину и создавал на ней файлы?


Цитата(VIAcom @ 1.7.2005, 17:47)
И еще вопрос можно ли читать файлы с клиента? Я работал только с UTL_FILE ... может есть еще пакеты?

Есть еще позможность использовать хранимые процедуры на Java, там возможностей будет побольше.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
VIAcom
Дата 4.7.2005, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



Клиентская программа - Парус, оа уже есть и мне ее переписывать низя ... поэтому мне только через сервак на клиент писать, но может Парус и может какнить писать, просто я об этом не знаю пока smile

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

Это сообщение отредактировал(а) VIAcom - 4.7.2005, 09:59
PM MAIL ICQ   Вверх
igon
Дата 4.7.2005, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
поэтому мне только через сервак на клиент писать

Напиши собственного клиента, если нельзя типа plug-in к Парусу прикрутить.
Запись на клиента по инициативе сервера (push-технология?) будет, ИМХО, существенно сложнее, если клиентов много, каждому нужно свое и по своему расписанию.


--------------------
Хотите поговорить об этом?
PM   Вверх
VIAcom
Дата 4.7.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



igon
Цитата
Напиши собственного клиента

Предлагаешь Парус переписать? smile
PM MAIL ICQ   Вверх
LSD
Дата 4.7.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(VIAcom @ 4.7.2005, 16:41)
Предлагаешь Парус переписать?

Вовсе нет. На серваке пишется процедура которая предоставляет данные в нужном виде, на клиенте программа которая записывает эти данные в файл.
Пакет UTL_FILE позволяет работать с локальной файловой системой, локальные диски + диски подключенные через NFS. У Java возможности побольше но не намного. Так что единственый нормальный выход это клиент, или модифицировать парусовский или писать отдельный для данного случая.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
VIAcom
Дата 5.7.2005, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



LSD
Нет не пойдет, даже если написать отдельнуюб прогу на Дельфи, ее вызывать никто не будет, т.к. заказчику совершенно невозможно открывать еще что то акромя Паруса, и уж тем более в нем работать. Эта схмема сложной получается чересчур.
Но там есть обходной маневр в самом Парусе, правда уж больно "обходной" и не хочется его юзать ...

Спасибо за ответ.
PM MAIL ICQ   Вверх
igon
Дата 5.7.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 7
Всего: 21



Цитата
я (==заказчик?) хочу скинуть текстовый файлик - отчет к себе на винчестер

но для меня
Цитата
совершенно невозможно открывать еще что то акромя Паруса, и уж тем более в нем работать.

Хм, типа "по щучьему велению"? smile
Вариант:
В .bat файл прописываешь
1. Запуск собственно Паруса
2. Запуск Дельфи программы (as service?), которая по timeout (расписанию) обращается к серверу за отчетом и по получении "пищит" (как в аське): "У Вас новый отчет!!!"
Иконку Паруса перенаправляешь на .bat файл
Вариант:
Дельфи программа стартует при запуске компьютера.
"Работать" с такой Дельфи программой вовсе не обязательно - все настройки по умолчанию, на рабочем столе только файл (иконка) с отчетом. Не так все это и сложно. ИМХО smile


--------------------
Хотите поговорить об этом?
PM   Вверх
VIAcom
Дата 6.7.2005, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



Цитата

Хм, типа "по щучьему велению"? smile

Нет не по веленью, а из хранимой процедуры, вызов которых в Парусе вполне возможен.

Все другое не окупиться ИМХО.
PM MAIL ICQ   Вверх
LSD
Дата 7.7.2005, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Чтобы из хранимки записать в файл, локальная ФС клиента должна быть подключенна к серверу, или через NFS для *nix систем, или через сетевые шары для Windows систем. Вы готовы пойти на такое? И реализуемо ли это, технически?
Если да, то я могу написать подобную процедерку.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
VIAcom
Дата 8.7.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2005
Где: г. Казань, Емноно вский Хутор.

Репутация: нет
Всего: нет



Что там как возможно у аказчика я не знаю, я не их сис. админ. Но если такое возможно и это не слишком хитро, то почему нет, сразу скажу, что затруднять себя специальным написанием процедуры не имеет, думаю, смысла. Хотя я очень приятно удивлен и польшен оказанному вниманию.

Что такого дикого в записи на клиент с сервера, может я чегото недопонимаю, но серевер разве не должен видет расшаренные папки, или это дурная практика чреватая снижением производительности/безопасности. Я не специалист по сетям и в этом чесно говоря плохо разбираюсь.
PM MAIL ICQ   Вверх
LSD
Дата 11.7.2005, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



 Итак запись на клиентскую машину.
1. Создаем Java class
Код
create or replace and compile java source named write_to_client as
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.*;

public class NetWrite
{
  private static final char FILE_SEPARATOR = '\\';
  private static final byte[] buffer = new byte[1024];

  public static void writeToFile(String machineName, String directory, String file, Blob data) throws Exception
  {
    StringBuffer fileName = new StringBuffer(50);
    fileName.append(FILE_SEPARATOR).append(FILE_SEPARATOR);
    fileName.append(machineName).append(FILE_SEPARATOR);
    fileName.append(directory).append(FILE_SEPARATOR);
    fileName.append(file).append(FILE_SEPARATOR);
    FileOutputStream out = new FileOutputStream(fileName.toString());
    InputStream in = data.getBinaryStream();
    int read = 0;
    while( (read = in.read(buffer)) > 0)
      out.write(buffer, 0, read);
    in.close();
    out.close();
  }
}
/

2. Создаем процедуру на PL/SQL
Код
create or replace procedure WRITE_CLIENT(mashine varchar2, directory varchar2, file varchar2, data blob) as
language java name 'NetWrite.writeToFile(java.lang.String, java.lang.String, java.lang.String, java.sql.Blob)';

3. Выдаем разрешения на запись в файл
Код
begin
  -- Call the procedure
  sys.dbms_java.grant_permission('PUBLIC', 'java.io.FilePermission', '\\workstation1\temp\*', 'read,write');
end;
/

4. Проверяем
Код
declare 
  bin_data blob;
begin
  select photo_data into bin_data from photos where id = 'D490AA09AEF3424A9AEEFAAC638B283E';
  write_client('workstation1', 'temp', 'data.bin', bin_data);
end;
/



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0958 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.