Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Связка мастер-деталь в JDBC / 5 сообщений из 5, страница 1 из 1
19.10.2007, 13:47:08
    #34880918
Darrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка мастер-деталь в JDBC
Господа, доброго времени суток.

Некоторое время назад судьба свела с Java (до этого долгое время занимался Delphi и талкивался с .net), и при первом же взгляде на JDBC неприятно удивило то, что параметры, используемые в SQL запросах, не имеют имён, а указываются в виде вопросиков.
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.

Основываясь на выше описанном, подскажите, как возможно реализовать связку двух источников данных по типу мастер-деталь (Т.е. при переходе с записи на запись в мастер-рекордсете, происходил бы перезапрос детального-рекордсета). Неужели, без написания кода руками, который бы при скроле мастера устанавливал бы параметры детальному запросу и вызывал его обновление никак не обойтись?

В Дельфи или .Net достаточно просто реализовать механизм (а то и использовать стандартный), в котором при перехде с записи на запись происходит обновление детальных датасетов, а перед обновлением детальный датасет запрашивает значения ИМЕНОВАННЫХ параметров (таких как ":spName" из примера) у своего мастера. В случае же JDBC не возможно автоматически определить, значение какого поля датасета-мастера нужно присвоить параметру детального запроса.
Подскажите пожалуйста, правильно ли я понимаю ситуацию, а если я ошибаюсь в каком направлении смотреть.

Зарание спасибо.
...
Рейтинг: 0 / 0
19.10.2007, 13:56:47
    #34880961
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка мастер-деталь в JDBC
Руками или Hibernate к примеру
...
Рейтинг: 0 / 0
19.10.2007, 13:59:15
    #34880970
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка мастер-деталь в JDBC
А что вас пугает, дело то в паре лишних строчек. С jdbc-commons вообще лафа, только запрос написать и бины.
...
Рейтинг: 0 / 0
19.10.2007, 14:13:03
    #34881025
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка мастер-деталь в JDBC
Darrin
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#06_03
Do the Oracle JDBC drivers provided a Bind by Name facility?

Yes. See the JavaDoc for oracle.jdbc.OraclePreparedStatement. Look for the setXXXAtName methods. Also, oracle.jdbc.OracleCallableStatement supports binding arguments to PL/SQL procedures by the formal argument names. Look at the JavaDoc for the oracle.jdbc.OracleCallableStatement.setXXX(String, ...) methods.
...
Рейтинг: 0 / 0
19.10.2007, 15:05:26
    #34881244
Darrin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка мастер-деталь в JDBC
ТимоНРуками или Hibernate к примеру
В том то и дело, что не охота эти 2 строчки писать, поскольку завязка датасетов декларативная, и мастер о деталях ничего не ведает.

Denis Popov Darrin
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#06_03
Do the Oracle JDBC drivers provided a Bind by Name facility?

Yes. See the JavaDoc for oracle.jdbc.OraclePreparedStatement. Look for the setXXXAtName methods. Also, oracle.jdbc.OracleCallableStatement supports binding arguments to PL/SQL procedures by the formal argument names. Look at the JavaDoc for the oracle.jdbc.OracleCallableStatement.setXXX(String, ...) methods.

Благодарю! То что нужно.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Связка мастер-деталь в JDBC / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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