Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса. / 5 сообщений из 5, страница 1 из 1
06.11.2007, 05:33:21
    #34917522
Shovkoviy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса.
Приложение соединяется с MSSQL 2005 с помощью JDBC драйвера (sqljdbc.jar).
Код: plaintext
1.
2.
3.
4.
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
 try  
{     Class .forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}  catch (Exception e) {....}

Пример кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Statement stmt = getConnection().createStatement();
String query = "SELECT Value As [description] FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'Person', NULL, NULL)";
ResultSet rs = stmt.executeQuery(query);
 try 
{    while  (rs.next())
    {
        String restult = rs.getString( 1 );
	....
    }
}
 catch  (Throwable se) { }

rs.close();
stmt.close();
Запрос
String query = "SELECT Value As [description] FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'Person', NULL, NULL)"
без проблем выполняется в MSSQL 2005, но когда этот запрос выполняю в коде приложения, вываливается ошибка:
Exception: [MBI_JDBC_E0004] Microsoft SQL Server raised an SQL Exception (The "variant" data type is not supported.ErrorCode(0) SQLState(08S01))

Пробую запустить приложение с простым запросом типа:
String query = "SELECT * FROM Person"
работает без пробем!!!

Подскажите в чем может быть проблема?
...
Рейтинг: 0 / 0
06.11.2007, 07:18:25
    #34917565
Jartisan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса.
А что такое ::
перед fn_listextendedproperty?
...
Рейтинг: 0 / 0
06.11.2007, 09:25:43
    #34917684
Софтверный проктолог
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса.
M$ никогда не утруждала себя полноценной поддержкой фич своей СУБД в JDBC драйверах.
Попробуйте другой драйвер.
...
Рейтинг: 0 / 0
06.11.2007, 18:37:33
    #34920055
Shovkoviy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса.
Помог jTDS драйвер jTDS .
Спасибо за помощь.
Код: plaintext
1.
2.
3.
4.
String url = "jdbc:jtds:sqlserver://localhost:3433/test";
 try  
{     Class .forName("net.sourceforge.jtds.jdbc.Driver");
}  catch (Exception e) {....}
...
Рейтинг: 0 / 0
07.11.2007, 05:11:23
    #34920592
Shovkoviy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса.
Возможно кому понадобится, оказалось можно решить и с помощью Microsoft JDBC driver.
Для этого немного изменить запрос.
Пример получения описания колонок таблицы для MSSQL Server 2005:
Код: plaintext
1.
SELECT CAST ( value AS varchar(max) ) as description FROM ::fn_listextendedproperty ( NULL , 'user', 'dbo', 'table', 'Ваша таблица', 'column',  NULL )
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Приложение использует JDBC driver для соединения с MS SQL 2005. Ошибка выполнения запроса. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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