Всепроникающий SQL Имя базы данных Java - PullRequest
0 голосов
/ 16 октября 2018

РЕДАКТИРОВАТЬ: я также попробовал стандартное соединение Java, используя этот ответ: Создание Java Connector для широкого распространения

Основная проблема здесь заключается в том, что он работает с Demodata, но имя базы данныхМне нужно использовать использование ° в имени: GESCOOP ° 2018

Я не уверен, что это проблема, но я знаю, что я получаю только эту ошибку:

SQLException: [LNA][PSQL][SQL Engine][Data Record Manager]Cannot locate the named database you specified(Btrieve Error 2301)

для базы данных с° в названии.

Оригинальный вопрос:

Мне нужно использовать базу данных Pervasive ODBC с Hibernate (если возможно, если нет, мне нужно использовать ее внутри Java).У меня уже есть 3 файла: jpscs.jar pvjdbc2.jar pvjdbc2x.jar, которые должны быть драйверами JDBC для распространяющейся БД, но я не знаю, как создать файл конфигурации гибернации с этим диалектом (я не уверен, что поддержка спящего режима распространена иЯ не уверен, если это возможно, настроить пользовательский sql db).

Я только что смог настроить настройку DNS Pervasive 32-разрядного клиента ODBC (с окнами конфигурации источника данных на панели управления) с простым именем сервера(без учетной записи или пароля).И проверка соединения прошла успешно, но я не знаю, как просмотреть таблицы и данные этой базы данных.

Текущий файл конфигурации hibernate hibernate.cfg.xml:

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>

    <property name = "hibernate.dialect">
     org.hibernate.dialect.
    </property>

    <property name = "hibernate.connection.driver_class">
     com.pervasive.jdbc.v2.Driver
    </property>

    <!-- Assume test is the database name -->

    <property name = "hibernate.connection.url">
     GBJOB09.GBJOB.LOCAL/GESCOOP*2018
    </property>

    <!-- List of XML mapping files -->
    <!-- mapping resource = "Employee.hbm.xml"/ -->

 </session-factory>
</hibernate-configuration>

1 Ответ

0 голосов
/ 17 октября 2018

В конце я использовал C # с этим кодом:

string conn = "Provider=PervasiveOLEDB;  Data Source=gescoop°2018;Location=<url>";
string queryString = "select * from TAB_UTENTI";

try
{
    using (OleDbConnection connection = new OleDbConnection(conn))
    {
        OleDbCommand command = new OleDbCommand(queryString, connection);
        connection.Open();
        OleDbDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            Debug.WriteLine(reader.GetValue(0).ToString() + "  " +
                reader.GetValue(1).ToString() + "  " +
                ...
                reader.GetValue(47).ToString() + "  ");
        }
        reader.Close();
    }
}
catch (Exception ex)
{
    Debug.WriteLine("Failed to connect to data source " + ex.Message);
}

Я думаю, что есть некоторые ограничения в драйвере jdbc на java, который не допускает использование специальных символов, таких как °, в имени базы данных.Я не могу изменить имя базы данных, поэтому мой единственный способ - использовать C #.

...