Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Процедура MSSQL из JDBC / 10 сообщений из 10, страница 1 из 1
19.05.2004, 15:31
    #32524211
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Господа. Как процедуру MSSQL типа
"declare @ret int\n" +
"exec @ret = updateRemains\n" +
" @nomn =112111100,\n" +
" @kol = 3,\n" ....
запустить из JDBC. Так чтоб вернуть значение этого @ret и посмотреть
ошибки. Вроде ж это с PreparedStatement делается?
...
Рейтинг: 0 / 0
19.05.2004, 15:36
    #32524232
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
склероз - CallableStatement....
...
Рейтинг: 0 / 0
19.05.2004, 16:51
    #32524447
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Уважаемое Собрание!
Что бы это значило -
java.sql.SQLException: Driver does not support this function
что - через jdbc:odbc я не могу store proceDuru выполнить
на MSSQL?
...
Рейтинг: 0 / 0
19.05.2004, 17:21
    #32524548
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Не скажу точно за 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
19.05.2004, 17:52
    #32524625
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
скажите, про what function он говорит что unsupported. про perpareCall?
...
Рейтинг: 0 / 0
19.05.2004, 18:54
    #32524771
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
да - он говорит про него.
Все нормально - драйвера попутал - хотел в dBase(было такое когда-то -
оттуда надо данные перекачать) store proceduru запустить.
А вообще - кто-то может назвать причины использования MSSQL,
а не Oracle. Кроме цены есть у MSSQL хоть какие-то достоинства?
...
Рейтинг: 0 / 0
19.05.2004, 20:29
    #32524871
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Не хочет! Что это за exception - кто знает?
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Optional feature not implemented
...
Рейтинг: 0 / 0
19.05.2004, 23:38
    #32524964
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Какой драйвер используешь? Я пробовал вызов процедуры 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
20.05.2004, 20:35
    #32527114
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Я пробовал JDBC:ODBC - не хочет.
Попробовал от микрософта драйвер - com.microsoft.jdbc.sqlserver.SQLServerDriver() -
пишет, что только с 2000 - а у админа стоит 7.
Попробую с твоим еще...
...
Рейтинг: 0 / 0
21.05.2004, 20:32
    #32528999
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура MSSQL из JDBC
Спасибо за помощь.На драйвере от микрософта на 2000 все работает
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Процедура MSSQL из JDBC / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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