【问题标题】:Invalid string or buffer length无效的字符串或缓冲区长度
【发布时间】:2014-12-31 22:47:15
【问题描述】:

JSP 对我来说是一个新世界,但我需要在 Web 应用程序中做一些小改动。我已经知道如何做几乎所有我需要的事情,但是我在从数据库中获取数据时遇到了一些问题。

我正在使用来自here 的示例,我可以获得以下代码来显示数据:

  while(resultset.next()){
        out.println(resultset.getString(1));

  }

当我尝试将 resultset.getString(1) 分配给变量时,我得到:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] 无效的字符串或缓冲区长度

这是我正在使用的代码示例:

        <% 
      String strEmail = "";
      Connection connection = DriverManager.getConnection(
            "jdbc:odbc:dbcon", "acctName", "acctNamePass");

        Statement statement = connection.createStatement() ;
        ResultSet resultset = statement.executeQuery("SELECT  [ctt_email] FROM [petergriffin].[dbo].[contact] where ctt_id = 13") ; 

        while(resultset.next()){
            strEmail = resultset.getString(1);

        }
        out.println(strEmail);

    %>      

谁能告诉我我做错了什么?

【问题讨论】:

  • ctt_email的值和类型是什么?
  • 请不要使用 Scriptlet。特别是,不要在 Scritplets 中使用 JDBC。

标签: jsp odbc


【解决方案1】:

尽管这看起来像是数据类型问题,但如果您在使用 jdbc/odbc 桥接的 64 位系统上工作,这是一个常见的错误消息。如果我没记错的话,jdbc:odbc 桥使用的是旧的 32 位 ODBC 驱动程序,当在 64 位环境中使用时(我猜你正在使用它),它会变得很糟糕。

建议找一个更合适和最新的JDBC驱动,比如http://msdn.microsoft.com/en-us/data/aa937724.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多