powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Процедура MSSQL из JDBC
10 сообщений из 10, страница 1 из 1
Процедура MSSQL из JDBC
    #32524211
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа. Как процедуру MSSQL типа
"declare @ret int\n" +
"exec @ret = updateRemains\n" +
" @nomn =112111100,\n" +
" @kol = 3,\n" ....
запустить из JDBC. Так чтоб вернуть значение этого @ret и посмотреть
ошибки. Вроде ж это с PreparedStatement делается?
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524232
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
склероз - CallableStatement....
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524447
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемое Собрание!
Что бы это значило -
java.sql.SQLException: Driver does not support this function
что - через jdbc:odbc я не могу store proceDuru выполнить
на MSSQL?
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524548
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не скажу точно за MSSQL, но м.б. бызов должен быть примерно таким (по крайней мере с Oracle такое бы прошло):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Connection conn;
...
CallableStatement cst = conn.prepareCall("{? = call updateRemains(@nomn=?, @kol=?)}";
cst.registerOutParameter( 1 , Types.INTEGER);
cst.setInt( 2 ,  112111100 );
cst.setInt( 3 ,  3 );
cst.execute();
int ret = cst.getInt( 1 );
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524625
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажите, про what function он говорит что unsupported. про perpareCall?
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524771
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да - он говорит про него.
Все нормально - драйвера попутал - хотел в dBase(было такое когда-то -
оттуда надо данные перекачать) store proceduru запустить.
А вообще - кто-то может назвать причины использования MSSQL,
а не Oracle. Кроме цены есть у MSSQL хоть какие-то достоинства?
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524871
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочет! Что это за exception - кто знает?
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Optional feature not implemented
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32524964
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой драйвер используешь? Я пробовал вызов процедуры MSSQL через jTDS - работает, пример из их исходников net.sourceforge.jtds.test.SAfeTest:

Код: 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.
26.
27.
28.
  public static void testCallableStatement()
    throws SQLException {
    final int myVal =  13 ;
    DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
    Connection conn =
      DriverManager.getConnection("jdbc:jtds:sqlserver://oz:1433", "sa", "sa");
    Statement stmt = conn.createStatement();
    stmt.execute(
      "CREATE PROCEDURE #SAfe0006 @p1 INT, @p2 VARCHAR(20) OUT AS " +
      "SET @p2=CAST(@p1-1 AS VARCHAR(20)) RETURN @p1+1"
    );
    stmt.close();

    // Try all formats: escaped, w/ exec and w/o exec
    String[] sql = {"{?=call #SAfe0006(?,?)}", "exec ?=#SAfe0006 ?,?", "?=#SAfe0006 ?,?"};

    for (int i =  0 ; i < sql.length; i++) {
      CallableStatement cs = conn.prepareCall(sql[i]);
      cs.registerOutParameter( 1 , Types.INTEGER);
      cs.setInt( 2 , myVal);
      cs.registerOutParameter( 3 , Types.VARCHAR);
      cs.execute();

      System.out.println(cs.getInt( 1 ));
      System.out.println(cs.getString( 3 ));
      cs.close();
    }
  }

Надо будет с функцией попробовать, но, если не получится, может переписать код MSSQL, и это пройдет под любым драйвером?
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32527114
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пробовал JDBC:ODBC - не хочет.
Попробовал от микрософта драйвер - com.microsoft.jdbc.sqlserver.SQLServerDriver() -
пишет, что только с 2000 - а у админа стоит 7.
Попробую с твоим еще...
...
Рейтинг: 0 / 0
Процедура MSSQL из JDBC
    #32528999
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь.На драйвере от микрософта на 2000 все работает
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Процедура MSSQL из JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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