1

javascriptアプリ内で、SQL Server 2005でsprocを呼び出しています。このsprocは、bigint、varchar(20)、およびvarchar(MAX)の3つのタイプの列を持つ結果セットを返します。

sprocを呼び出して結果を読み取る場合、例外はスローされません。結果セットを列挙する場合:

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()以外の別のメソッドを呼び出すのではないでしょうか?

4

1 に答える 1

2

Varchar(MAX)は、CLOB(文字ラージオブジェクト)データ型です。内容を読み取るために使用できるコードを次に示します。

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();
于 2009-04-25T09:55:54.583 に答える