javascript - l'accesso a un campo di tipo di dati varchar (max) nel gruppo di risultati
-
13-09-2019 - |
Domanda
In un'applicazione javascript, stiamo chiamando uno sProc su SQL Server 2005 che sta tornando un gruppo di risultati con 3 colonne di tipo:. Bigint, varchar (20), e varchar (max)
Quando si chiama lo sProc e lettura dei risultati, non c'è alcuna eccezione essere gettato. Quando si elenca il gruppo di risultati:
var dbConn = DatabaseConnectionFactory.createDatabaseConnection("1","2","3","4");
var myResultSet = dbConn.executeCachedQuery("EXEC MySproc");
dbConn.close();
var myString = myResultSet.getString("MyVarcharMaxField");
Quando si esamina il valore della myString, il valore non è quello che mi aspetto:
javax.sql.rowset.serial.SerialClob@15b4206
Qualsiasi idea di come ottenere il valore reale del campo?
Chiamare un altro metodo diverso da getString () forse?
Soluzione
varchar (max) è una CLOB (Personaggio Large Object) tipo di dati. Ecco alcuni codice è possibile utilizzare per leggere il suo contenuto.
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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow