جافا سكريبت - الوصول إلى حقل Datatype Varchar (MAX) في النتائج

StackOverflow https://stackoverflow.com/questions/782189

سؤال

ضمن تطبيق JavaScript، فإننا نسمي بترجم على SQL Server 2005 الذي يعود نتائج مع 3 أعمدة من النوع: Bigint و Varchar (20) و Varchar (MAX).

عند استدعاء RODOC وقراءة النتائج، لا يوجد استثناء يجري طرحه. عند تعداد النتائج:

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 () ربما؟

هل كانت مفيدة؟

المحلول

varchar (ماكس) هو طيب (شخصية شخصية شخصية) نوع البيانات. فيما يلي بعض الكود الذي يمكنك استخدامه بالترتيب قراءة محتوياته.

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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top