zhms99 发表于 2009-4-18 17:26:17

jdbc连接sybase,表名前要加数据库名吗?

代码如下:
public static void main(String[] args){
                try {
                        Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
                        String url ="jdbc:sybase:Tds:192.168.8.100:5000/vmphone";
                        Connection conn= DriverManager.getConnection(url, "sa","");
                        Statement stmt=conn.createStatement();
                        String sql="select * from mytest";
                        ResultSet rs=stmt.executeQuery(sql);
                        if(rs.next()){
                                System.out.println(rs.getString("username"));
                        }else{
                                System.out.println("noDate");
                        }
                        rs.close();
                        stmt.close();
                        conn.close();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }


        }
报错:
com.sybase.jdbc3.jdbc.SybSQLException: mytest not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).


如果我这样写,请注意粗体部分:
try {
                        Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
                        String url ="jdbc:sybase:Tds:192.168.8.100:5000/vmphone";
                        Connection conn= DriverManager.getConnection(url, "sa","");
                        Statement stmt=conn.createStatement();
                        String sql="select * from vmphone.mytest";
                        ResultSet rs=stmt.executeQuery(sql);
                        if(rs.next()){
                                System.out.println(rs.getString("username"));
                        }else{
                                System.out.println("noDate");
                        }
                        rs.close();
                        stmt.close();
                        conn.close();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }


        }

podie 发表于 2009-4-20 11:19:57

public static void main(String[] args){
      try {
                Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
                String url ="jdbc:sybase:Tds:192.168.0.102:5000/mysybase";
                Connection conn= DriverManager.getConnection(url, "sa","");
                Statement stmt=conn.createStatement();
                String sql="select * from test_myuser";
                ResultSet rs=stmt.executeQuery(sql);
                if(rs.next()){
                        System.out.println(rs.getString("name"));
                }else{
                        System.out.println("noDate");
                }
                rs.close();
                stmt.close();
                conn.close();
      } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
      }

首先可以确认的是不需要加数据库名的url中就已经包含了数据库名
用你的代码测试了下我这边没问题
页: [1]
查看完整版本: jdbc连接sybase,表名前要加数据库名吗?

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com