Anomoly when storing empty values into SQLite integer fields
Bob Sneidar
bobs at twft.com
Tue Feb 21 22:07:10 EST 2012
Is it important to discern between null and a value? If so, uncheck the not null in the table definition and don't include the column in inserts/updates
Bob Sneidar
IT Manager
Calvary Chapel CM
Sent from iPhone
On Feb 21, 2012, at 18:58, Mark Smith <Mark_Smith at cpe.umanitoba.ca> wrote:
>
> Peter Haworth-2 wrote
>>
>> Long story short, the only way I could find to make this work correctly is
>> to not include the integer column in the UPDATE statement. Not sure if
>> your update was just a test with that one column or if there;d normally be
>> more columns to update, but you'd have to test your integer fields for
>> empty and leave them off the UPDATE statement if they are.
>> --
>> Pete
>> Molly's Revenge <http://www.mollysrevenge.com>
>>
>
> Thanks Pete, nice to have confirmation, although its not so much fun to
> contemplate the alternatives :)
>
> I guess there are 2 really: in the first case, since I am only going to be
> using this app with SQLite and SQLite has pretty relaxed type affinity I
> could store everything in text fields. LC seems to be leaving those alone
> when they are undefined. However, thats not a good solution if you are
> writing an app that needs to work with other SQL databases. In that case
> your suggestion of including or excluding the columns based on whether they
> are defined or not defined seems the better solution. However, my own LC
> skills are not at the level where I would know how to make that work
> (although I am sure it can be done).
>
> For example, if one were to use the substitution form of revExecuteSQL how
> would you write it so that if one of the fields was undefined it would
> disappear from the statements:
>
>
> put "UPDATE test SET one=:1, two=:2, three=:3 where ID=" & tID into tCmd
> revExecuteSQL gConnectID, tCmd, "tOne", "tTwo", "tThree"
>
> I guess this might be easier to do in the merge() form ??? (since you are
> only dealing with 1 string):
>
> put "UPDATE test SET " & \
> merge("one='[[tOne]]', two='[[tTwo]]', three='[[tThree]]'") & \
> " WHERE id = " & tID into tCmd -- old format
>
> But then you have to worry about escaping characters in text fields... etc
>
> -- Mark
>
>
> --
> View this message in context: http://runtime-revolution.278305.n4.nabble.com/Anomoly-when-storing-empty-values-into-SQLite-integer-fields-tp4408942p4409110.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