DatabaseMetaData.getColumns (), выдавая ошибку с SQL Server 2008 - PullRequest
0 голосов
/ 19 октября 2011

У нас давно есть код базы данных, который успешно работает с Progress DB.Недавно мы попробовали это с SQL Server 2008 с драйвером JDBC 4. Ниже приводится исключение:

База данных "%" не существуетУбедитесь, что имя введено правильно.

DatabaseMetaData conMD = connection.getMetaData();
ResultSet columns = conMD.getColumns("%", "%", m_Table, "%");

Может кто-нибудь, пожалуйста, помогите мне?

Ответы [ 3 ]

0 голосов
/ 19 октября 2011

Как говорится в сообщении об ошибке: вы не можете передать шаблон для параметра базы данных (каталога).Подстановочные знаки разрешены только для имен схем, таблиц и столбцов.

Вместо этого используйте ноль.

conMD.getColumns(null, "%", m_Table, "%");
0 голосов
/ 20 октября 2011
conMD.getColumns(connnection.getCatalog(), "%", m_Table, "%");

вместо указания%, connnection.getCatalog() исправит проблему. Интересно, что код работает с Oracle, MySql и Progress.Только Sql Server выдает ошибку.

0 голосов
/ 19 октября 2011

Если вы получили список каталогов раньше?

С помощью метода getCatalogs ()

http://download.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html#getCatalogs()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...