javascript - доступ к полю типа данных varchar (max) в наборе результатов - PullRequest
1 голос
/ 23 апреля 2009

В приложении javascript мы вызываем sproc на SQL Server 2005, который возвращает набор результатов с 3 столбцами типа: bigint, varchar (20) и varchar (MAX).

При вызове 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 ()?

1 Ответ

2 голосов
/ 25 апреля 2009

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();
...