Как проверить, является ли BLOB нулевым - PullRequest
4 голосов
/ 08 декабря 2011

Как проверить, является ли значение столбца в базе данных SQLite нулевым, если он имеет тип Blob?

Я получаю курсор следующим образом:

public Cursor fetchArticle(int i) throws SQLException {
    Cursor mCursor = mDatabase.query(true, "api_content",
        new String[] { "_id", "ArticleName",     "ArticleText","ImageLink", "Image" },
        KEY_ID + "=" + i, null, null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

Как я могу проверить, является ли значение столбца изображения, индекс 4, нулевым?Я пробовал следующее:

  • Использование метода isNull () , который всегда возвращает false, когда на самом деле значение должно быть, безусловно, нулевым
  • Использование articleCursor.getBlob(4) == null, где articleCursor является действительным курсором (возвращает false)

Чтобы еще больше усложнить ситуацию, когда я печатаю articleCursor.getBlob(4)[0], он возвращает значения, такие как 78 или 91которые не похожи ни на что, я считаю null.

И снова, невозможно, чтобы в базе данных были какие-либо данные в этом столбце;оно должно быть нулевым.Есть идеи?Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 декабря 2015

Метод getBlob () всегда имеет значение. Если значение этого столбца пустое или пустое, при использовании длины метода результат равен 1.

Пример:

byte[] image = cursor.getBlob(cursor.getColumnIndex("image"));
if(image.length == 1) {
   //column data is empty
} else{
   //column has data
}

Надеюсь, это поможет вам.

0 голосов
/ 14 октября 2014

Пожалуйста, найдите ниже запрос, чтобы получить значение Y или N

select id, 
 case
      when myblob is not null then 'Y'
      else 'N'
 end,
 myblob

Если BLOB-объект равен нулю, то он возвращает N иначе Y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...