普适 SQL Java 数据库名称
Pervasive SQL Java Database Name
编辑:
我还使用此答案尝试了标准 java 连接:
Creating Java Connector for pervasive
这里的主要问题是它与 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 应该是普适数据库的 JDBC 驱动程序,但我不知道如何使用这种方言创建休眠配置文件(我不确定 hibernate 是否普遍支持,我不确定是否可以配置自定义 sql db)。
我只能使用一个简单的服务器名称(无帐户或密码)配置 Pervasive 32 位 ODBC 客户端 DNS 设置(windows 在控制面板上配置数据源)。并且连接测试成功,但是我不知道如何查看这个数据库的表和数据。
当前休眠配置文件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>
最后我使用了 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#。
编辑: 我还使用此答案尝试了标准 java 连接: Creating Java Connector for pervasive
这里的主要问题是它与 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 应该是普适数据库的 JDBC 驱动程序,但我不知道如何使用这种方言创建休眠配置文件(我不确定 hibernate 是否普遍支持,我不确定是否可以配置自定义 sql db)。
我只能使用一个简单的服务器名称(无帐户或密码)配置 Pervasive 32 位 ODBC 客户端 DNS 设置(windows 在控制面板上配置数据源)。并且连接测试成功,但是我不知道如何查看这个数据库的表和数据。
当前休眠配置文件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>
最后我使用了 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#。