powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / JDBC:ODBC Invalid string or buffer length
6 сообщений из 6, страница 1 из 1
JDBC:ODBC Invalid string or buffer length
    #38604631
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Подскажите, плиз, насчет этой баги(?) на 64битной win server.
Пытаюсь подключиться с 6ой явы к MSSQL через JDBC:ODBC bridge, выдает ошибку

SQL Exception:
State : S1090
Message: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
Error : 0

Задача - подключаться из Essbase к MSSQL и выполнять некоторые запросы, с помощью кастомной ява функции..

Подключаюсь следующим образом:
Код: java
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
 import java.util.*;
import java.io.*;
import java.sql.* ;

public class JDBCQuery
{

//public static void main(com.hyperion.essbase.calculator.Context ctx, String[] args) {
//runQuery(args);
//  }
    
  public static void main(String[] args) {
    runQuery(args);
  }
    
  public static void runQuery(String[] args) {
    int n = args.length;
    String strDSN = args[0];
    String strUser = args[1];
    String strPassword = args[2];
    String strQuery = args[3];

    for (int i=4; i < n ; i++) {
      strQuery = strQuery + " " + args[i];
    }

    try {
      // Load the database driver
      Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ) ;

      Properties connectionProps = new Properties();
      connectionProps.put("user", strUser);
      connectionProps.put("password", strPassword);      // Print all warnings

      // Get a connection to the database
      Connection conn = DriverManager.getConnection( "jdbc:odbc:" + strDSN, connectionProps) ;

      for( SQLWarning warn = conn.getWarnings(); warn != null; warn = warn.getNextWarning() ) {
        System.out.println( "SQL Warning:" ) ;
        System.out.println( "State  : " + warn.getSQLState()  ) ;
        System.out.println( "Message: " + warn.getMessage()   ) ;
        System.out.println( "Error  : " + warn.getErrorCode() ) ;
      }

      // Get a statement from the connection
      Statement stmt = conn.createStatement() ;

      // Execute the query
      ResultSet rs = stmt.executeQuery( strQuery ) ;

      // Loop through the result set
      while( rs.next() )
         System.out.println( rs.getString(1) ) ;

      // Close the result set, statement and the connection
      rs.close() ;
      stmt.close() ;
      conn.close() ;
    }
    catch( SQLException se ) {
      System.out.println( "SQL Exception:" ) ;

      // Loop through the SQL Exceptions
      while( se != null ) {
        System.out.println( "State  : " + se.getSQLState()  ) ;
        System.out.println( "Message: " + se.getMessage()   ) ;
        System.out.println( "Error  : " + se.getErrorCode() ) ;

        se = se.getNextException() ;
      }
    }
    catch( Exception e ) {
      System.out.println( e ) ;
    }
  }

  }  



В инете нашел множество описаний подобной проблемы, но внятного ответа так и не нашел. Кто что подскажет на эту тему ? Буду оч признателен.

Артем.
...
Рейтинг: 0 / 0
JDBC:ODBC Invalid string or buffer length
    #38604734
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Х.з. С данной ошибкой не сталкивался.

А родной MS JDBC драйвер не подходить? Что бы JDBC-ODBC bridge не использовать?
...
Рейтинг: 0 / 0
JDBC:ODBC Invalid string or buffer length
    #38607755
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

тут возникает другая проблема, я не знаю Java, чтобы переписать используемые методы.. если я конечно все правильно понял)
скачал драйвер sqljdbc4 для JRE 6ой версии и пока на этом остановился.

з.ы. мотороллер java код не мой)
...
Рейтинг: 0 / 0
JDBC:ODBC Invalid string or buffer length
    #38608445
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документации на драйвер указано, что пишется вместо "odbc" во фрагменте "jdbc:odbc".
...
Рейтинг: 0 / 0
JDBC:ODBC Invalid string or buffer length
    #38608917
Фотография Шведков Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, спасибо, все получилось.

Только теперь с кодировкой что-то, при обработке событий выдает мессагу с иероглифами.

SQL Exception:
State : null
Message: ╚эёЄЁєъЎш  эх тхЁэєыр Ёхчєы№ЄшЁє■∙шщ эрсюЁ.
...
Рейтинг: 0 / 0
JDBC:ODBC Invalid string or buffer length
    #38609014
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"chcp 1251" в консоли, где запускаете ваше (консольное) приложение.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / JDBC:ODBC Invalid string or buffer length
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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