Pervasive SQL Java 数据库名称

问题描述 投票:0回答:1

编辑: 我还使用这个答案尝试了标准java连接: 为 Pervasive 创建 Java 连接器

这里的主要问题是它可以与 Demodata 一起使用,但是我需要使用的数据库名称在名称中使用°: GESCOOP°2018

我不确定这就是问题所在,但我知道我只收到此错误:

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

对于名称中带有°的数据库。

原问题:

我需要在 Hibernate 中使用 Pervasive ODBC 数据库(如果可能的话,如果不是我需要在 java 中使用它)。 我已经得到了 3 个文件: jpscs.jar pvjdbc2.jar pvjdbc2x.jar 应该是 Pervasive DB 的 JDBC 驱动程序,但我不知道如何使用这种方言创建 hibernate 配置文件(我不确定 hibernate 支持 pervasive 和我不确定是否可以配置自定义 sql 数据库)。

我只能使用简单的服务器名称(无帐户或密码)配置 Pervasive 32 位 ODBC 客户端 DNS 设置(在控制面板上使用 Windows 配置数据源)。连接测试成功,但我不知道如何查看该数据库的表和数据。

当前 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>
java hibernate pervasive pervasive-sql
1个回答
1
投票

最后我使用了 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);
}

我认为 Java 上的 JDBC 驱动程序存在一些限制,不允许在数据库名称中使用°等特殊字符。 我无法更改数据库名称,所以我唯一的方法是使用 C#。

© www.soinside.com 2019 - 2024. All rights reserved.