2017-02-16 12 views
0

Приносим извинения, если этот вопрос был задан раньше (не удалось найти точное решение), но у меня есть столбец в моей таблице базы данных, который имеет тип varchar и является нулевым.FMDB stringforcolumn с nil

Когда я запрос, чтобы получить обратно столбец:

let rs: FMResultSet = db.executeQuery("SELECT InternalNote from MyTable where id = ?", withArgumentsIn: [id]) 

     while(rs.next()) 
     { 
      let testValue = rs.string(forColumn: "InternalNote") 
      ..code continues.. 
     } 
.. 

это приводит к сбою на rs.string выше, потому что поле является пустым ..

Я полагал, что я должен буду просто изменить он должен быть непустым и значением по умолчанию "", но есть ли способ, которым я могу сохранить его null?

Спасибо!

+0

Вы можете поделиться с нами, что вы пытаетесь, чтобы помочь вам? –

+0

уверен, добавил еще код. Благодарю. – NullHypothesis

+1

Возможно, это ошибка, но ваш 'FMResultSet' назван' rsTemp', а не 'rs', поэтому, возможно, есть ваша проблема, пожалуйста, дайте мне знать –

ответ

1

Что делать, если вы измените свой код:

if let value = rs.string(forColumn: "internalNote") { 
    let testValue = value 
    ... code continues ... 
} 
+0

Это интересно, позвольте мне попробовать. – NullHypothesis

+0

Держите меня в курсе :) –

+0

ах единственная проблема - я использую ее в конструкторе. Думаю, я должен использовать тернарный оператор? Дело в том, что я думаю, что это FMDB, который разбивает разворот null, но я попробую – NullHypothesis

0

Убедитесь, что проблема не из-за того, что ваш запрос имеет InternalNote в то время как ваш rs.string(forColumn:) вызов имеет internalNote.

+0

ах, извините, просто глупо с моей стороны, это правильно в коде. но все равно не повезло – NullHypothesis