jsp连SQL数据库出错,可以访问系统表但不能访问自建表,访问所有系统表都能成功,但是自己建的表做查询操作都会出
Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 '**' 无效
的错误,系统是XP,SQL打过SP4补丁。到底是什么原因?
崩溃中。

解决方案 »

  1.   

    在JSP里面我是用SA用户登陆的,建表的用户我就不知道了,怎么查看和比较呢?
      

  2.   

    final String drivername="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    try{
     Class.forName(drivername);
     

        con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;   DatabaseName=text","sa","514"); 
    out.print(con+"<br>");
    st=con.createStatement();
    out.print(st+"-----------<br>");

     }catch(SQLException e){
     
     }try{
     
     rs=st.executeQuery("SELECT * FROM he");          out.print(rs);
    就是RS这报的错,但如果是访问另外一个系统自带表如"SELECT * FROM sysfiles"的话就能够正常返回结果了.
    系统是新装的.
      

  3.   

    程序是用sa登录的,但是你的数据库表不是用sa用户建立的,你在企业管理器里面看看你表的所有者是不是dbo如果不是,把所有者改成dbo在查询分析器中执行这个
    exec sp_MSForEachTable 'EXEC sp_changeobjectowner ''?'', ''dbo''' 
      

  4.   

    执行 眉飞色舞兄弟给的代码后如下:
    服务器: 消息 15505,级别 16,状态 1,过程 sp_changeobjectowner,行 63
    无法更改对象 '[dbo].[he]' 或其所属的某个子对象的所有者,因为新所有者 'dbo ' 已有同名的对象。在JSP中访问还是报错[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'he' 无效。
      

  5.   

    这种问题就是你数据库的表 和你通过JSP页面进行访问的数据库的表名不一致 仔细检查一下你的数据库中表的权限问题
      

  6.   

    修改了SA登陆属性中的默认数据库后问题解决,谢谢9楼WENGS2006的指点,同样也要谢谢楼上各位兄弟姐妹的帮助.
    还是不明白为什么会问题为什么会怎么出现.
      

  7.   

    采用混合模式登录才能使用sa和其他帐号。
    不然就只能使用系统帐号,这个是mssql的一个常见问题
      

  8.   

    有那个错误说明he表已经数据sa了,sa系统用户,权限是所有你执行那个语句,会把所有所有者都改成dbo,也就是sa的不应该再有问题了呀如果没有采用混合模式登录,也不能改提示这个呀,你再检查一下你的表名吧,比如全角半角啥的,呵呵