你有没有在ODBC里面配置DNS呢?

解决方案 »

  1.   

    修改一下,打的太快了,
    有没有配置好ODBC的系统DSN呢?
      

  2.   

    改成:
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    String url="jdbc:odbc:user_db";
    Connection con=DriverManager.getConnection(url,"user","user");
    String query="select * from student";
    PreparedStatement StatementRecordset1 = ConnRecordset1.prepareStatement(query);
      

  3.   

    按照cds123()的方法改后,出现:
    Error: 500
    Location: /myjsp/student.jsp
    Internal Servlet Error:org.apache.jasper.JasperException: Unable to compile class for JSPC:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:74: 未定义变量或类名:ConnRecordset1
                    PreparedStatement StatementRecordset1 = ConnRecordset1.prepareStatement(query);
                                                            ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:83: 未定义变量或类名:result
                            while(result.next())
                                  ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:86: 未定义变量或类名:result
                            out.println(""+result.getString("studentNo")+"");
                                                            ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:87: 未定义变量或类名:result
                            out.println(""+result.getString("studentName")+"");
                                                            ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:88: 未定义变量或类名:result
                            if (result.getBoolean("StudentSex")==true)
                                ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:108: 未定义变量或类名:result
                            out.println(""+result.getString("studentAge")+"");
                                                            ^
    C:\tomcat\work\localhost_8080%2Fmyjsp\_0002fstudent_0002ejspstudent_jsp_5.java:109: 未定义变量或类名:result
                            out.println(""+result.getString("studentDept")+"");
                                                            ^
    7 个错误 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
    at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:612)
    at org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java:146)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:542)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:258)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:268)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
    at org.apache.tomcat.core.Handler.service(Handler.java:287)
    at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
    at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
    at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
    at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
    at java.lang.Thread.run(Thread.java:484)
    现在的问题是:JDK1.3 + Tomcat3.2 已经配置好了,数据库用的是 SQL SERVER 2000  还需不需要在单独安装JDBC+ODBC桥?ODBC的“系统DSN”已经通过测试,可以连接SQL SERVER ,而且SQL SERVER 已启动,Tomcat已启动。就是JSP和SQL SERVER不知道如何连接?我在CSDN上下了上面的例子作测试,出错。我不只是什么原因。请帮忙,谢谢。100分!!!
      

  4.   

    1、需到www.inetsoftware.de下载相应的driver
    2、将下载到的jar文件放在tomcat的lib目录
    3、具体代码
    package Test;import java.sql.*;public class LoginMsg
    {
      String strLogin="sa";
      String strPassword="";  String sConnStr="jdbc:inetdae7:localhost:1433?database=pubs";
      Connection conn=null;
      ResultSet rs=null;
      Statement stmt=null;  public LoginMsg()
      {
        try
        {
          Class.forName("com.inet.tds.TdsDriver").newInstance();
          }
        catch(Exception e)
        {
          e.printStackTrace();
          }
        }    //关闭连接
        public void Conn_Close()
        {
          try
          {
            stmt.close();
            conn.close();
            }
          catch(SQLException ex)
          {
            System.err.println("Conn_Close: " + ex.getMessage());
            }
          }    }
      

  5.   

    靠,这点小问题应该自己动动老筋啦,肯定是ConnRecordset1,result没定义啦
      

  6.   

    认真理解一下recordset的定义。
    用StatementRecordset1 代替result
      

  7.   

    按 cds123() 的提示,用StatementRecordset1 代替result,还是不行,IE提示:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'student' 无效。 怎么办呀?????请帮帮我。谢谢。另外 gavinhe(gavinhe) 的意思是什么?????????????tomcat 安装好了呀,还学要什么driver???? 我单独执行jsp的时候(不连数据库)是可以执行的。
    try {
        
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String url="jdbc:odbc:user_db";
        Connection con=DriverManager.getConnection(url,"user","user");
        Statement statement=con.createStatement();
        String query="select * from student";
        ResultSet  StatementRecordset1=statement.executeQuery(query);
    %>
        <table border=1 cellspacing="0" cellpadding="0" bordercolordark="#ffffff" bordercolorlight="#88a6dd" width="70%" align=center>
        <tr bgcolor="#88a6dd">
        <td align=center> ?? </td>
        <td align=center> ?? </td>
        <td align=center> ?? </td>
        <td align=center> ?? </td>
        <td align=center> ?? </td>
        </tr>
        <%
            while(StatementRecordset1.next())
        {
            out.println("</tr>");
            out.println("<td align=center>"+StatementRecordset1.getString("studentNo")+"</td>");
            out.println("<td align=center>"+StatementRecordset1.getString("studentName")+"</td>");
            if (StatementRecordset1.getBoolean("StudentSex")==true)
                %>
            <td align=center>?</td>
            <% else %>
            <td align=center>?</td>
                <% %>
            <%
            out.println("<td align=center>"+StatementRecordset1.getString("studentAge")+"</td>");
            out.println("<td align=center>"+StatementRecordset1.getString("studentDept")+"</td>");
            out.println("</td>");
        }
        con.close();
    }catch(Exception e)
    {out.println(e);}
    %>
      

  8.   

    开始->设置-〉控制面板-〉odbc数据源,
    添加用户数据源,这一步,你做了么?
      

  9.   

    这种方法是JDBC-ODBC桥的方法吗?
    还是JDBC驱动程序方法?
    好像JSP要调用SQL SERVER2000的时候安装JDBC的东西吧?
    我看用您提到的这种方法我也测试成功,那么为什么还要安装JDBC驱动程序哪?
    注:win2000server\ms sql server 2000\resin