NS_IMETHODIMP Statement::GetIsNull(uint32_t aIndex, bool *_isNull) { // Get type of Index will check aIndex for us, so we don't have to. int32_t type; nsresult rv = GetTypeOfIndex(aIndex, &type); NS_ENSURE_SUCCESS(rv, rv); *_isNull = (type == mozIStorageStatement::VALUE_TYPE_NULL); return NS_OK; }
NS_IMETHODIMP ArgValueArray::GetIsNull(uint32_t aIndex, bool *_isNull) { // GetTypeOfIndex will check aIndex for us, so we don't have to. int32_t type; nsresult rv = GetTypeOfIndex(aIndex, &type); NS_ENSURE_SUCCESS(rv, rv); *_isNull = (type == VALUE_TYPE_NULL); return NS_OK; }
NS_IMETHODIMP Statement::GetString(uint32_t aIndex, nsAString &_value) { // Get type of Index will check aIndex for us, so we don't have to. int32_t type; nsresult rv = GetTypeOfIndex(aIndex, &type); NS_ENSURE_SUCCESS(rv, rv); if (type == mozIStorageStatement::VALUE_TYPE_NULL) { // NULL columns should have IsVoid set to distinguish them from the empty // string. _value.Truncate(0); _value.SetIsVoid(true); } else { const PRUnichar *value = static_cast<const PRUnichar *>(::sqlite3_column_text16(mDBStatement, aIndex)); _value.Assign(value, ::sqlite3_column_bytes16(mDBStatement, aIndex) / 2); } return NS_OK; }
NS_IMETHODIMP Statement::GetUTF8String(PRUint32 aIndex, nsACString &_value) { // Get type of Index will check aIndex for us, so we don't have to. PRInt32 type; nsresult rv = GetTypeOfIndex(aIndex, &type); NS_ENSURE_SUCCESS(rv, rv); if (type == mozIStorageStatement::VALUE_TYPE_NULL) { // NULL columns should have IsVoid set to distinguish them from the empty // string. _value.Truncate(0); _value.SetIsVoid(PR_TRUE); } else { const char *value = reinterpret_cast<const char *>(::sqlite3_column_text(mDBStatement, aIndex)); _value.Assign(value, ::sqlite3_column_bytes(mDBStatement, aIndex)); } return NS_OK; }