2011-12-12 3 views
1

Я следующий текст в базе данных SQLite в поле TEXTAndroid читает строку как сгусток

Точная дата его рождения неизвестна. Однако консенсус мнения состоит в том, что он родился примерно в 580 г. до н.э. Он был моложе своих друзей.

Он принадлежал к дворянской семье.

Когда я прочитал это из БДА и добавить к ArrayList<String> я получаю следующее сообщение об ошибке

14): unknown error: Unable to convert BLOB to string 
14): unknown error: Unable to convert BLOB to string 
14): unknown error: Unable to convert BLOB to string 
14): unknown error: Unable to convert BLOB to string 
14): Closing Cursor 

Я смущен, почему его становится блоб? вот как я читаю этот

String select = "SELECT heading,text FROM details WHERE chapter_id = \'" + tocIDX + "\'" ; 

Constants.c = Constants.myDataBase.rawQuery(select, null); 



int headingIndex = Constants.c.getColumnIndex("heading"); 
int headingTextIndex = Constants.c.getColumnIndex("text"); 

Constants.c.moveToFirst(); 
    if (Constants.c != null) { 


     if (Constants.c.isFirst()) { 

      int i = 0; 

       /* Loop through all Results */ 

       do { 

         i++; 
         if(Constants.Debug){ 
          Log.d("toc", "Row # " + i);} 

         try{ 
           headingIndex.add(Constants.c.getString(headingIndex)); 
          headingTextIndex.add(Constants.c.getString(headingTextIndex));   


    } catch (Exception e) {if(Constants.Debug){Log.d("toc", e.getMessage());} } 


       } while (Constants.c.moveToNext()); 

высоко ценю вашу помощь

+0

вы читали типы данных SQLite? Если вы исходите из фона MySQL, вы будете удивлены. – AlfredoVR

+0

Я новичок в базе данных ... просто базовые знания. Я читал типы данных для sqlite, но не могу понять, почему мое текстовое поле преобразуется в blob. Если да, то как преобразовать его в строку – Abid

ответ

0

Я думаю, что тип данных заголовка и текстовых столбцов определяются как BLOB. вы можете подстроить данные, чтобы получить У вас есть два пути.

  • Подход-1) используйте SUBSTRING для получения строки из данных BLOB.

  • подход-2) Если возможно использование VARCHAR вместо BLOB как тип данных

+1

NAVICAT показывает ТЕКСТ для имени поля "texT". его не blob – Abid

+0

Хорошо, это то, что я сделал и работал для меня. Не могу принять его как ответ coz, у которого нет достаточного количества баллов для отправки байта ответа [] blobs = Constants.c.getBlob (headingTextIndex); String blobString = new String (blobs); Constants.headingTextIndex.add (blobString); // сохранение строки в ArrayList Abid

+0

Если бы та же проблема, ответ Абида сработал ... но почему это происходит? ??? Должна быть ошибка – MobileMon

Смежные вопросы