代码之家  ›  专栏  ›  技术社区  ›  p.campbell

javascript-访问resultset中数据类型varchar(max)的字段

  •  1
  • p.campbell  · 技术社区  · 16 年前

    在一个javascript应用程序中,我们调用了SQL Server 2005上的一个存储过程,该存储过程返回一个结果集,其中包含3列类型:bigint、varchar(20)和varchar(max)。

    调用存储过程并读取结果时,不会引发异常。枚举结果集时:

    var dbConn = DatabaseConnectionFactory.createDatabaseConnection("1","2","3","4");    
    var myResultSet = dbConn.executeCachedQuery("EXEC MySproc");
    dbConn.close();
    
    var myString = myResultSet.getString("MyVarcharMaxField");
    

    当检查mystring的值时,该值不是我期望的值:

    javax.sql.rowset.serial.SerialClob@15b4206
    

    你知道如何得到这个领域的真正价值吗?

    是否调用getString()以外的其他方法?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Jose Basilio    16 年前

    Varchar(max) 是一个 克洛布 (字符大对象)数据类型。下面是一些代码,您可以使用这些代码来读取其内容。

    var clobField = myResultSet.getClob("MyVarcharMaxField");
    var strOut = new java.lang.StringBuffer();
    var aux = new java.lang.String();
    
    // RTF data conversion
    
    var kit = new Packages.javax.swing.text.rtf.RTFEditorKit();
    var doc = new Packages.javax.swing.text.DefaultStyledDocument();
    kit.read(clobField.getAsciiStream(), doc, 0);
    
    var text = doc.getText(0, doc.getLength());
    var myString = text.toString();
    
    推荐文章