On 2015/11/16 7:59 PM, Igor Korot wrote:
> Stephan,
>
> On Mon, Nov 16, 2015 at 12:42 PM, Stephan Beal <sgbeal at googlemail.com> 
> wrote:
>> On Mon, Nov 16, 2015 at 6:11 PM, Igor Korot <ikorot01 at gmail.com> wrote:
>>
>>> The variables referenced are defined as "std::string" and the code is in
>>> C++.
>>>
>> the std::string(char const *) constructor does  not, last time i checked,
>> accept a NULL value. You will need to pass it "" in that case.
>>
>> [stephan at host:~/tmp]$ cat foo.cpp
>> #include <string>
>>
>> int main(){
>>      std::string s(0);
>>      return 0;
>> }
>>
>> [stephan at host:~/tmp]$ gcc -o foo foo.cpp -lstdc++
>> [stephan at host:~/tmp]$ ./foo
>> terminate called after throwing an instance of 'std::logic_error'
>>    what():  basic_string::_S_construct null not valid
>> Aborted
> OK, it looks like the value is NULL instead of "".
> I will change the code accordingly.
>
> BTW, are only name, type and pk fields are guaranteed to have a value?

Nothing is guaranteed to have a value unless created with NOT NULL in 
the field specification in the CREATE TABLE schema SQL.

Usually (in most DBs) a Primary key is guaranteed to not have NULL 
values, but in SQLite it is permissible if the PK is not specifically 
stated to be NOT NULL.


Reply via email to