Anomoly when storing empty values into SQLite integer fields
Bob Sneidar
bobs at twft.com
Tue Feb 21 22:01:19 EST 2012
Right. So in a column defined as integer not null, there must then be a default value when you pass empty otherwise there would be an inconsistency. What I do ( and how I do it is too much to go into on an iPhone) is I preload all the values I intend to insert/update with default values, then get input from the user. If the user does not alter the defaults, then the SQL table gets the ones I defined. The best way however is to define your table columns with some default. I have learned to do this at pains to The contrary.
Bob Sneidar
IT Manager
Calvary Chapel CM
Sent from iPhone
On Feb 21, 2012, at 18:42, Mark Smith <Mark_Smith at cpe.umanitoba.ca> wrote:
>
> slylabs13 wrote
>>
>> What is the field type? What is the default? If numeric and not null then
>> it may be that the value defaults to 0
>>
>
> Thanks Bob, field type is integer, no default is defined. Firefox plugin has
> a zero in the Not Null column,(which means?) and a zero in the Primary Key
> column (which I presume means the field is not a primary key).
>
> Just to add to my previous comments, I thought I would check to see if it
> had anything to do with the substitution form of revExecuteSQL. It did not.
> Switching back to
>
>
> put "UPDATE test SET " & \
> merge("one='[[tOne]]', two='[[tTwo]]', three='[[tThree]]'") & \
> " WHERE id = " & tID into tCmd -- old format
>
> had the same result. One advantage though was that if I put a "Put tCmd" to
> throw the statement to the msg box I could actually see what the values
> were. For the first save of the empty fields (UPDATE statement above) it
> looks like this:
>
> UPDATE test SET one='', two='', three='' WHERE id = 10
>
> field types are integer, integer and text respectively
>
> After reading it back in, it displays 0's in the int fields. If I then try
> saving it again (running the same code as above) I get this:
>
> UPDATE test SET one='0', two='0', three='' WHERE id = 10
>
> and as you can see the int fields now contain 0's while the text field does
> not. No data entry has occurred on my part, I am just executing a repeated
> read and write on the same record using the same code. Bob may be on to
> something though.... maybe I have to define a default... but what should
> that be (I want undefined to remain undefined)?
>
> -- Mark
>
>
> --
> View this message in context: http://runtime-revolution.278305.n4.nabble.com/Anomoly-when-storing-empty-values-into-SQLite-integer-fields-tp4408942p4409072.html
> Sent from the Revolution - User mailing list archive at Nabble.com.
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list