Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Доступ к файлам Access и Excel

Поиск:
Большое спасибо Zandr за предоставленную информацию

Работа с файлами dBase (*.dbf), Microsoft Excel (*.xls), Microsoft Access (*.mdb)

dBase.

Через ODBC.
Плюсы: грамотное определение кодировки.
Нюансы: в строке адреса указывается не конкретный dbf файл, а директория в которой он находится, без завершающего слэша. Каждый dbf файл, содержащийся в этой директории есть таблица в БД. При создании новой таблицы (файла) командой CREATE TABLE длина имени не должна превышать 8 символов (остальные молча отсекаются).

Код

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = “jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)};DBQ=d:/your/dbf/files/dir”;
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(“SELECT * FROM MYTABLE”);
st.executeUpdate(“CREATE TABLE NEWTABLE (NAME CHAR(32), PASSWD CHAR(32))”);
con.close();


Используя классы сторонних производителей например JavaDBF.
Плюсы: Pure Java
Нюансы: возможно не понимает форматы некоторых версий, могут быть проблемы с кодировками.

Microsoft Excell

Через ODBC.
Плюсы: натив-поддержка в win, унификация методов обработки (если вы получаете данные в разных форматах, часть которых [например mdb] не могут обойтись без ODBC, то почему бы тогда все данные не пропускать ч-з ODBC?)
Нюансы: таблицы именуются как Имя_листа$, поэтому имена таблиц закавычиваются или окружаются квадратными скобками. Не все «рукотворные» таблицы правильно читаются ODBC драйвером (по крайней мере стандартным), половина прайс-листов приходящих к нам в контору не могут быть корректно обработаны, поэтому придется искать альтернативные варианты. Ну и все-таки xls это скорее документ, чем БД.

Код

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = “jdbc:odbc:Driver=Microsoft Excel Driver (*.xls);DBQ=d:/your/file.xls”;
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs1 = st.executeQuery(“SELECT * FROM [Sheet1$]”);
ResultSet rs2 = st.executeQuery(“SELECT * FROM \”Sheet2$\””);
con.close();


Используя классы сторонних производителей. Вот тут http://www.geocities.com/marcoschmidt.geo/...ries-excel.html есть неплохая подборка, сам пока не разгребал :)

Microsoft Access

Кроме варианта с ODBC в этом случае предложить больше ничего не могу. Вполне вероятно, что существуют коммерческие PureJava JDBC драйвера.

Код

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = “jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=d:/your/file.mdb”;
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(“SELECT * FROM MyTable”);
st.executeUpdate(“CREATE TABLE Новая_таблица (Имя VARCHAR(32), Пароль VARCHAR(32))”);
con.close();
Автор: AntonSaburov
Сайт: http://






Просмотров: 8849

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную