|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
Для начала несколько общих вопросов. Кто-нибудь вообще использует встроенную JAVA? (Хотя бы это уже интересно) Пока всего лишь предпринимаю попытку уйти от курсоров и сделать некоторые процедуры более читабельными. Стоит ли вообще заморачиваться насчет "уйти от курсоров"? А проблема вот какая. Нужно написать свою функцию в ASE 12.5.x. Для этого пишется JAVA класс со статическим методом и заливается в БД, все нормально. Только в процессе вычислений необходимо сделать и обработать запрос. Для этого получаем Connection методом The connecter( ) Method // A JDBCExamples method to get a connection. // It can be called from the server with argument ’default’, // or from a client, with an argument that is the server name. public static Connection connecter(String server) throws Exception, SQLException, ClassNotFoundException { String forName=""; String url=""; if (server=="default") { // server connection to current server forName = "sybase.asejdbc.ASEDriver"; url = "jdbc:default:connection"; } else if (server!="default") { //client connection to server forName= "com.sybase.jdbc.SybDriver"; url = "jdbc:sybase:Tds:"+ server; } String user = "sa"; String password = ""; // Load the driver Class.forName(forName); // Get a connection Connection con = DriverManager.getConnection(url,user, password); return con; } тупо копипаст из "Java in Adaptive Server® Enterprise" и делаем запрос. Вобщем не важно какой запрос. Важно, что у него есть такая строчка: String q = "<Тело запроса собирается по строчкам>"; q=q+"and SectionName='"+sec+"' "; sec - это входной параметр для требуемой функции, типа String и содержит русские символы. Если эту строку закомментировать - все нормально. Если попросить функцию вернуть тело запроса и выполнить запрос в sql_adv, тоже все нормально. А если запрашивать из JAVA как есть, то результат запроса пустой. Подозреваю, что проблема с кодировками\чарсетами\чем-то там, но уже продолбался с этим достаточно долго и ничего не придумалось. Может кто знает, что нужно сделать с коннекшеном или еще с чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 16:59 |
|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
Apucmokpam пишет: > Кто-нибудь вообще использует встроенную JAVA? (Хотя бы это уже интересно) Кто-то наверное использует. > Пока всего лишь предпринимаю попытку уйти от курсоров и сделать > некоторые процедуры более читабельными. Стоит ли вообще заморачиваться > насчет "уйти от курсоров"? нет. За счёт применения Java процедуры более читабельными не станут. По очень простой причине -- Java - язык гораздо более низкоуровневый, чем TSQL. Правда, TSQL не универсальный. Но для приложений в БД это не важно, поскольку там сложных алгоритмов не бывает. > попросить функцию вернуть тело запроса и выполнить запрос в sql_adv, > тоже все нормально. А если запрашивать из JAVA как есть, то результат > запроса пустой. А где вы хотите этот результат увидеть ? как вы предполагаете его обнаружить ? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 17:29 |
|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
Извиняюсь, так будет правильнее. Предыдущий удалите плз. MasterZiv > попросить функцию вернуть тело запроса и выполнить запрос в sql_adv, > тоже все нормально. А если запрашивать из JAVA как есть, то результат > запроса пустой. А где вы хотите этот результат увидеть ? как вы предполагаете его обнаружить ? О, это очень просто. От этого результата зависит значение функции, ради которой все и затевалось :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 17:54 |
|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
Проблему можно немного упростить. Вот такой класс компилится и заливается в БД: Код: 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. 25.
После чего выполняем в sql_adv запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
P.S. Нет, судя по количеству откликов и обсуждений в разных форумах JAVA в ASE мало кто использует... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:42 |
|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
Apucmokpam, Конечно мало. Ты на цену-то её смотрел ? Да ещё под enterprize платформу ... вот будет 15 больше использоваться (через год 12.5 end-of-life-ится, так что деваться некуда ...), будут больше использовать. Там это входит в базовую поставку. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 17:57 |
|
ASE 12.5.x + JAVA option
|
|||
---|---|---|---|
#18+
ApucmokpamТ.е. при передаче запроса через con, что-то нехорошее происходит с телом запроса, а именно с русскими буквами... Что можно сделать с коннекшеном\настройками сервера? Есть конечно обходной путь, но он мне не нравится... Нашли в чем проблема была, а то я тоже с этим столкнулся? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 11:24 |
|
|
start [/forum/topic.php?fid=55&msg=35894118&tid=2010111]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 239ms |
0 / 0 |