powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection к базам через ODBC (без JDBC)
22 сообщений из 22, страница 1 из 1
Connection к базам через ODBC (без JDBC)
    #39402957
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Необходимо осуществить коннект к базам без использования JDBC
(так требует общая постановка задач)

Возможно ли использовать системные объекты ODBC Win7
Т.е. должна быть строка коннекта типа
Odbc;
Provider=MSDAORA;
Driver={Oracle in OraClient12Home1};
UID=...;PWD=...;DBQ=...;
QTO=F;
Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.......)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=abd1ua00.world)))


Буду признателен за ссылки и реальный пример
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39402984
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X(так требует общая постановка задач)
постановка задачи: Сходить в магазин не по мосту, а переплыв под мостом на лодке.)
...
- установить на винду драйвер COM
- вызвать драйвер через COM-интрефейсы
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39402986
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403001
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123постановка задачи: Сходить в магазин не по мосту, а переплыв под мостом на лодке.)


В какой-то мере согласен...

Причина следующая
у меня более сотни запросов, которые работают через ODBC операционки
переписывать их желания не имею (и логика запросов неизвестна)

Нужно использовать тот же механизмы доступа, как это сделать из java ?

Причем здесь MDAC драйвер - ? он для операционки
У меня вопрос как использовать ODBC из под java

Приведите пожалуйста пример

Вот эта строка коннекта должна работать
Odbc;
Provider=MSDAORA;
Driver={Oracle in OraClient12Home1};
UID=...;PWD=...;DBQ=...;
QTO=F;
Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.......)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=abd1ua00.world)))
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403015
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

В Oracle есть возможность использовать т.н. OCI драйвер (это не ODBC), который установлен вместе с ПО клиента Oracle.
см. OCI driver или Features Specific to JDBC OCI Driver , вообще поищите на сайте Oracle - там много всего про это. Может быть вам именно OCI нужно?

Требование обязательно использовать именно ODBC для меня как-то непонятно, т.к. работает только в Windows и не поддерживается в новых версиях Java. Постановщик задачи может как-то осмысленно аргументировать такое требование?

Кроме того, что у OCI есть дополнительные фичи, ни OCI, ни ODBC не дают никаких преимуществ перед JDBC, даже в скорости работы. И подозреваю, что ODBC наоборот проигрывает в скорости. Параметры соединения ODBC и OCI настраиваются отдельно, независимо от вашей программы через операционную систему. Параметров настроек великое множество вплоть до форматов чисел и дат. Кто-то всё это должен будет настраивать и администрировать в процессе эксплуатации. Для использования ODBC или OCI необходимо ещё дополнительно установить ПО клиента Oracle, т.к. Microsoft ODBC для Oracle не поддерживает версии Oracle выше 8-й.
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403016
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПричем здесь MDAC драйвер - ? он для операционки
без него работать не будет.
А причём тут ваше: "запросы старые не будут работать"? Это как?
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403018
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПриведите пожалуйста пример
- поставить Клиента Оракле (OLE COM) в операционку

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 import org.jawin.*;
    import org.jawin.win32.*;
    import java.util.*;
    public class WordExporter {
      public WordExporter() {
      }
     
      public void export(Map dataSource, String templateFile, String outputFile) {
        try {
          Ole32.CoInitialize();
          DispatchPtr app = new DispatchPtr("Word.Application");


тут вызвать объект что поставили выше вмесо Word
DispatchPtr app = new DispatchPtr("Word.Application");
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403027
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПричина следующая
у меня более сотни запросов, которые работают через ODBC операционки
переписывать их желания не имею (и логика запросов неизвестна)

Странная аргументация. Во первых тебе в любом случае придётся
переносить SQL-операторы из ODBC API в некий API X.

И если выбирать API то есть JDBC который постулирован на уровне
единственного (!) на минуточку правильного стандарта взаимодействия
с БД в JDK.

Все другие прочие API для работы с БД насчитывают чуть более чем ноль
юзкейсов и во столько-же раз меньше покрыты документацией и стандартами.

Вобщем думайте. Но всегда лучше брать что-то стандартное и проверенное
временем.
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403038
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonHOME_XПричина следующая
у меня более сотни запросов, которые работают через ODBC операционки
переписывать их желания не имею (и логика запросов неизвестна)

Во первых тебе в любом случае придётся
переносить SQL-операторы из ODBC API в некий API X.


Т.е Вы хотите сказать что при любых подходах использование
обьектов опер. системы будет невозможно ?

Первоначально использовался в качестве API обьекты ADODB там
конекк.string. и т.д. запросы
Разве COM активация неустойчива ?
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403041
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123HOME_XПриведите пожалуйста пример
- поставить Клиента Оракле (OLE COM) в операционку

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 import org.jawin.*;
    import org.jawin.win32.*;
    import java.util.*;
    public class WordExporter {
      public WordExporter() {
      }
     
      public void export(Map dataSource, String templateFile, String outputFile) {
        try {
          Ole32.CoInitialize();
          DispatchPtr app = new DispatchPtr("Word.Application");


тут вызвать объект что поставили выше вмесо Word
DispatchPtr app = new DispatchPtr("Word.Application");


В целом Вас понял ... это применимо к объектам ADODB ?

- поставить Клиента Оракле (OLE COM) в операционку
Вы имели в виду ссылку на драйвер в коннект стринг
Или для других целей ?
Odbc;
Provider=MSDAORA;
Driver={Oracle in OraClient12Home1}; UID=...;PWD=...;DBQ=...;
QTO=F;
Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.......)(PORT=1521))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=abd1ua00.world)))


Заранее благодарен !
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403048
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_Xэто применимо к объектам ADODB
да. ADO Delphi просто обёртка классов над данными COM OLE
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403050
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_Xпоставить Клиента Оракле (OLE COM) в операционку
- на том же диске где сервер оракле есть галка - установить только клиента.
- ставятся DLL в виде COM т.к. регистрируются в реестре как COM интерфесы.
Всё так же как OLE Server Word\Excell\IE\......
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403055
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

По коду
1.нашел библиотеки jawin.jar, jawin-stubs.jar
попытался реализовать следующее

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;

public class CreateWord {

	public static void main(String[] args) {
		try {
			Ole32.CoInitialize();
			DispatchPtr app = new DispatchPtr("Word.Application");
			app.put("Visible", true);
			Ole32.CoUninitialize();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}



Ошибки
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jawin in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.jawin.Bootstrap.<clinit>(Bootstrap.java:43)
at org.jawin.FuncPtr.<init>(FuncPtr.java:79)
at org.jawin.win32.Ole32.<clinit>(Ole32.java:44)
at sppExport.CreateWord.main(CreateWord.java:17)


2.По Oracle клиенту не совсем ясна цель ,
клиенская часть УЖЕ установлена ADODB стучится через нее - тут порядок.

ADODB.Connection есть в системной реестре - таким образом стоить задача создания
com - объекта в классе jar и использование его свойств и методов.

Верно ли Вас понимаю ?
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403056
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XРазве COM активация неустойчива ?
что значит неустойчива?
Он говорит что скрипты\код всё равно надо будет править.
У установка клиента оракла это очень большой геморрой для неопытного.
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403059
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_Xпопытался реализовать следующее
ищи чем на Java делают досту к ворд\1С и т.д.
Вот например,
http://www.sql.ru/forum/799434/com-obekt-i-java?hl=ie
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403060
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XADODB.Connection есть в системной реестре - таким образом стоить задача создания
com - объекта в классе jar и использование его свойств и методов.
да.
Только примеров в сети оччень мало. В этом сложность.
Из других ЯП - нет проблем.
Если за день не выйдет, то бросай и пиши на JDBC.
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403064
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_Xклиенская часть УЖЕ установлена ADODB стучится через нее - тут порядок.
если всё работает и проверено то клиент больше не нужен.
Просто дрова от MS глючно работают с самой БД Оракла. Обычно берут другие дрова...нет от MS.
Тут сам смотри.
Удачи!
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403068
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XТ.е Вы хотите сказать что при любых подходах использование
обьектов опер. системы будет невозможно ?

Какой опер. системы? Каких объектов? Приведи на примере.

Первоначально использовался в качестве API обьекты ADODB там
конекк.string. и т.д. запросы
Разве COM активация неустойчива ?
При чем здесь COM? Какое это имеет отношение к программированию в Java?
Перед тобой КМК стоит задача ПОРТИРОВАНИЯ по с одного ЯП(технологии)
на другой. И нужно чем-то жертвовать.
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403128
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Да вот нашел что-то похожее
http://j-integra.intrinsyc.com/support/com/doc/other_examples/MS_Active_Data_Objects.htm
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403165
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,
вот только там ссылка на софт com2java
Может посоветуете где найти это програмулину
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403238
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,
где найти не знаю.
Делает она точно то же что и все остальные.
Вот код из проекта только на Delphi

Код: java
1.
2.
3.
4.
5.
FIvarADOCommand := CreateOleObject('ADODB.Command.2.80'); 
FIvarADOCommand.CommandText      := 'SELECT * ';
IvarRecordSet := FIvarADOCommand.Execute(0,0,coConnectUnspecified);// райзе при ошибке в запросе
while Not IvarRecordSet.EOF do
begin
...
Рейтинг: 0 / 0
Connection к базам через ODBC (без JDBC)
    #39403511
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XВот эта строка коннекта должна работать
"Эта строка коннекта" - для OLE DB/ADO. С ODBC она работать не будет вне зависимости от языка программирования.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection к базам через ODBC (без JDBC)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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