Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка файлов в OLE поля MS Access средствами Java / 15 сообщений из 15, страница 1 из 1
01.07.2012, 21:41:00
    #37862200
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Добрый вечер.

Столкнулся с проблемой следующего плана. При попытке вставить объект (.jpg или .xls файл) в "Поле объекта OLE" средствами Java (будь-то связка JDBC+BLOB или библиотека Jackcess) в таблице БД появляется надпись "Двоичные данные", а при клике на нее выдается ошибка:

Возникла ошибка при установлении связи в приложении "Microsoft Office Access" с сервером OLE или элементом управления Activex.
Закройте сервер OLE и перезапустите его вне приложения "Microsoft Office Access". Затем снова попробуйте исходную операцию в приложении "Microsoft Office Access".

Необходимо чтобы по клику файлы открывались в соответствующих им программах. Помогите советом (код выложу, расскажу что делал очень подробно, если это необходимо). Уже неделю борюсь, кажется все перепробовал\\перегуглил.

P.S. С разрешения Программиста-Любителя дублирую тему открытую в разделе MS Access (/topic/952467&pg=-1), в которой немного больше подробностей о моей проблеме.
...
Рейтинг: 0 / 0
02.07.2012, 07:49:23
    #37862345
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,

Там свои заголовки. если есть пиши в обычное бинарное поле
...
Рейтинг: 0 / 0
02.07.2012, 10:53:58
    #37862520
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Petro123,

Да, заголовки там и вправду свои, но вся проблема в том, что я не нашел ничего путного об OLE-заголовках. Можете пояснить что такое обычное бинарное поле? Правильно ли я понял, что вы хотите представить файлы в виде массива байтов и напрямую записывать их в "Поле объекта OLE"? Примерно так же я и делаю:

Код: java
1.
2.
3.
4.
5.
6.
PreparedStatement pstmt = con.prepareStatement ("INSERT INTO mytable VALUES (?)");
File fBlob = new File ( "1.jpg" );
FileInputStream is = new FileInputStream ( fBlob );
pstmt.setBinaryStream (1, is, (int) fBlob.length() );
pstmt.execute ();
con.close();



Все компилируется без ошибок, но если открыть БД и посмотреть таблицу, то там в соответствующем поле надпись "Двоичные данные" (как я уже говорил) и просмотреть их не получается. Возможно ли сделать как-то по-другому? Буду признателен хорошему совету, т.к. вожусь с этим уже больше недели.
...
Рейтинг: 0 / 0
02.07.2012, 11:00:53
    #37862535
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,
да. Обычно (Delphi) ЯП уже предоставляет компоненты-библиотеки для работы с этими заголовками.

2. Обычное блоб поле, в СУБД которое байт в байт записывает и не меняет содержимое.
Я уже давно не работаю в Access. Есть там такой тип?
"Открыть БД и посмотреть" чем? В чём? Зачем?

Java пишет, а форма на Access/e что ли?
...
Рейтинг: 0 / 0
02.07.2012, 11:26:07
    #37862591
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Petro123,

На сколько я понял для работы с файлами в Access есть только два типа: либо гиперсылка, либо OLE-поле.

Открывать БД необходимо собственно при помощи MS Access поскольку клиент знаком с ним и сам собирается создавать формы. Моя задача - парсить данные и записывать их в его БД. Поэтому написать какой-нибудь GUI на Java и использовать другую СУБД будет лишним (хотя с каждым днем гугления проблемы я все больше хочу это сделать, хотя бы для того, чтобы все работало).

То есть как вывод: надо чтобы файлы, которые я помещаю в БД (именно MS Access), читались самим Access'ом.
...
Рейтинг: 0 / 0
02.07.2012, 11:33:37
    #37862607
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,
тяжёлый случай.
Варианты:
- запомнить заголовки побайтово и дописать на Jave самому (геморрой)
- писать на Java но через OLE интерфейс самого Accessa. Например, как при работе с Word\Acad\IE\...
...
Рейтинг: 0 / 0
02.07.2012, 12:36:50
    #37862729
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Petro123,

1) Действительно очень геморройное занятие получится. Я плохо представляю себе подобное, хотя и представляю.
2) Час гугления дал мне не очень радостный результат. OLE интерфейсы есть для всего: Word, Excel, Power Point, даже Outlook ( http://poi.apache.org/). Но c Access ничего дельного не нашлось.
...
Рейтинг: 0 / 0
02.07.2012, 13:35:58
    #37862884
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,

сделай отд. тему по POI. Там наверняка нужно ГУИД указать. И на любой OLE Server приконнектиться.
Удачи!
...
Рейтинг: 0 / 0
03.07.2012, 08:48:38
    #37863891
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,

Вы располагаете только MDB файлом и обрабатываете его в Linux или же всё-таки Windows и в наличии имеется сам MS Access? Раз речь идёт об OLE, то скорее всего второе. Напишите скрипт на VBS в котором будет производится загрузка в Access из внешнего файла. На Java сохраните нужные данные в файл и вызовите VBS скрипт с указанием этого файла в качестве параметра. В крайнем случае можно сделать имя файла и константой.
...
Рейтинг: 0 / 0
03.07.2012, 09:53:16
    #37863955
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Garrick,
+1
т.е. по факту Java будет просто запускалкой логики на любом ЯП (VBS \ Delphi \ ....).
Для отвода глаз, т.к. задача не для Java в общем случае.
...
Рейтинг: 0 / 0
03.07.2012, 12:19:09
    #37864197
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Garrick,

Да, обрабатываю в Windows, Access в наличии.

На счет загрузки из внешнего файла хотелось бы уточнить. Вы сказали, что при помощи Java я сохраню нужные данные в файл, а средствами VB его открою, так? Чем это будет отличаться от менее накладного (для меня, т.к. VB не знаю) варианта: сделать поле "гиперссылка" и просто ссылаться на этот файл?

Спасибо за ответы, сильно выручаете.
...
Рейтинг: 0 / 0
03.07.2012, 12:31:21
    #37864221
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,
гиперссылка на что?
с:\Мои документы\Мой.doc?
- это вам надо с начальством решать.
...
Рейтинг: 0 / 0
03.07.2012, 12:56:49
    #37864276
safety1990
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
Petro123,

Ну есть же относительные пути в Access.
...
Рейтинг: 0 / 0
03.07.2012, 14:04:19
    #37864420
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990Petro123,
Ну есть же относительные пути в Access.
относительно чего относительные?
- всё равно с шефом.
...
Рейтинг: 0 / 0
03.07.2012, 14:12:39
    #37864433
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка файлов в OLE поля MS Access средствами Java
safety1990,

А зачем вообще Java? Почему не сделать всё в Access? Там же есть замечательный VBA. Или C#/VB.Net, старый добрый VB6.

Возможные варианты:
1. Всё делается в Access - лего и просто имеем один MDB файл со всем необходимым внутри.
2. Если очень нужна Java и оченm нужен Access, то в Java вместо Access используем базу MS SQL Express, есть же JDBC для MS SQL, и в Access вместо MDB используем ту же базу - он умеет.

Необходимость использования Java вижу только если надо это интегрировать с каким-то уже работающим Java приложением. В данном случае целесообразно рассмотреть вопрос о замене Access на что-то более совместимое с Java.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка файлов в OLE поля MS Access средствами Java / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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