2012-08-02 103 views
0

我试图使用JDBC查询NonStop SQL/MX数据库。我有正确的驱动程序和我设法连接到数据库,并初始化代码如下的语句(我发现here):由于不存在目录导致JDBC数据库连接失败

Class.forName("com.tandem.t4jdbc.SQLMXDriver"); 
Connection con = DriverManager.getConnection(url, user, password); 
Statement stmt = con.createStatement(); 

然而,我无法执行查询...

ResultSet rs = stmt.executeQuery("SELECT * FROM Table1"); 

...因为某些不存在的目录NONSTOP_SYSTEM_NSK。那是什么意思?在GUI中查看同一个数据库时,我不需要指定任何目录(例如,DB Visualizer)。

产生的堆栈跟踪看起来是这样的:

java.sql.SQLException: *** ERROR[1002] Catalog NONSTOP_SYSTEM_NSK does 
    not exist or has not been registered on node \NSK01. 
    at com.tandem.t4jdbc.SQLMXMessages.throwSQLException(SQLMXMessages.java:71) 
    at com.tandem.t4jdbc.InterfaceStatement.executeDirect(InterfaceStatement.java:545) 
    at com.tandem.t4jdbc.SQLMXStatement.executeQuery(SQLMXStatement.java:226) 

回答

0

如果你已经有一个工作Connection con,您可以设置使用con.setCatalog()目录。一般来说,在一个给定的目录访问一个数据库表和模式如下:

ResultSet rs = stmt.executeQuery("SELECT * FROM <CATALOG>.<SCHEMA>.<TABLE>"); 
0

你是如何定义的URL连接,我们正在试图从外部Java应用程序connecto到远程不停分贝并且我们在如何定义连接服务器ip方面遇到问题。