Frage

Innerhalb einer Javascript-App sind wir eine sproc auf SQL Server 2005 aufrufen, die eine Ergebnismenge mit 3 Spalten vom Typ ist der Rückkehr. Bigint, varchar (20), und varchar (MAX)

Wenn die sproc Aufruf und die Ergebnisse zu lesen, gibt es keine Ausnahme geworfen. Wenn Aufzählen der resultset:

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

var myString = myResultSet.getString("MyVarcharMaxField");

Wenn der Wert des myString Prüfung ist der Wert nicht, was ich erwarten:

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

Jede Idee, wie den realen Wert des Feldes zu bekommen?

Der Aufruf eine andere Methode anders als getString () vielleicht?

War es hilfreich?

Lösung

Varchar (MAX) ist ein CLOB- (Character Large Object) Datentyp. Hier einige Code, den Sie, um seinen Inhalt lesen können.

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top