powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Программное использование JDBCGateway
6 сообщений из 6, страница 1 из 1
Программное использование JDBCGateway
    #35932063
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как программно получить resultset с данными из внешней БД используя JDBCGateway.
...
Рейтинг: 0 / 0
Программное использование JDBCGateway
    #35932446
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Déjà vu
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
d ##class(%Net.Remote.Java.JavaGatewayService).ConnectGateway("127.0.0.1:22972:TEST",.gateway)
set db=##class(%Net.Remote.Java.JDBCGateway).%New(gateway)
d db.connect("jdbc:Cache://localhost:1972/TEST","_system","SYS")
w db.prepareStatement( 0 ,"select * from pcs.Invoice"),!
w db.execQuery( 0 ),!
w db.getColumnCount(),!
...
PS: описание появилось в документации к версии 2009.1, но пока это не релиз, поэтому ещё возможны изменения.
...
Рейтинг: 0 / 0
Программное использование JDBCGateway
    #35932712
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

А где ResultSet?
...
Рейтинг: 0 / 0
Программное использование JDBCGateway
    #35932761
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit Déjà vu
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
d ##class(%Net.Remote.Java.JavaGatewayService).ConnectGateway("127.0.0.1:22972:TEST",.gateway)
set db=##class(%Net.Remote.Java.JDBCGateway).%New(gateway)
d db.connect("jdbc:Cache://localhost:1972/TEST","_system","SYS")
w db.prepareStatement( 0 ,"select * from pcs.Invoice"),!
w db.execQuery( 0 ),!
w db.getColumnCount(),!
...
PS: описание появилось в документации к версии 2009.1, но пока это не релиз, поэтому ещё возможны изменения.

Спасибо!

У меня падает на w db.getColumnCount(),!
а w db.getColumnCount(0),!
работает.
Переделал так:

s conn = $$GetJConnection^%apiGTW("external")
s cmd = "SELECT * FROM v_Products"
s st = %JDBCGateway.prepareStatement(conn,cmd)
s %JDBCGateway.StatementCache(conn) = st
s q = %JDBCGateway.execQuery(st)
w %JDBCGateway.getColumnCount(st)

Если вызвать %JDBCGateway.getRows(st) заполняется глобал с данными. Но мне не глобал нужен, а ResultSet. Есть идеи?
...
Рейтинг: 0 / 0
Программное использование JDBCGateway
    #35932985
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=,

О все получилось! Вопрос снят.
2servit спасибо!
...
Рейтинг: 0 / 0
Программное использование JDBCGateway
    #35933032
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не проще ли использовать стандартный java-интерфейс?
Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
  Set gateway=##class(%Net.Remote.Gateway).%New()
  Set status=gateway.%Connect("localhost", 22972 ,"SAMPLES", 5 )
  
  Do gateway.%ClassForName("com.intersys.jdbc.CacheDriver")
  
  Set connection=##class(java.sql.DriverManager).getConnection(gateway,"jdbc:Cache://localhost:1972/SAMPLES","_SYSTEM","SYS")
  
  Set statement=connection.createStatement()
  Set resultSet=statement.executeQuery("select * from Sample.Person where ID < 10")
  Set resultSetMetaData=resultSet.getMetaData()
  Write !,"Execute query: select * from Sample.Person where ID < 10",!
  Write "----------------------------------------------",!
  Write resultSetMetaData.getColumnName( 1 )_"  "_resultSetMetaData.getColumnName( 3 )_"          "
  Write resultSetMetaData.getColumnName( 6 )_"           "_resultSetMetaData.getColumnName( 5 )_"  ",!
  Write "----------------------------------------------",!
  While (resultSet.next()) {
    Write resultSet.getString( 1 )_"   "
    Write resultSet.getString( 3 )_"   "
    Write resultSet.getString( 6 )_"   "
    Write resultSet.getString( 5 )_"   ",!
  }
  Write "----------------------------------------------",!

  Do gateway.%Disconnect()
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Программное использование JDBCGateway
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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