put "INSERT into <tblName> (RecordType,DataArray) VALUES (0,<ArrayText>)" into
theSQL
replace "<tblName>" with theTblName in tSQL
replace "<ArrayText>" with quote & theArrayText & quote in tSQL
revExecuteSQL tID, tSQL
That is how I would do it. It's easier sometimes to create an SQL statement
using placeholders like <arrayText> and then replace them with a variable
containing the actual value in the code.
I may have the syntax messed up there (not tested use at your own risk) but
that is essentially how it's done.
In answer to your second question, yes the myKey will get a unique value each
time a record is inserted. It will get a number equal to the last inserted
record +1. It does this because your table is defined having the autoincrement
set for the myKey column.
Also, the advice for using defaults whenever you can is good advice, but
sometimes you don't want that. Sometimes you want to test for NULL to see if a
value has ever been assigned, putting an empty string if a value is ever
deleted. It's a matter of technique I suppose. But if you don't provide a
default, then NULL will be assigned. If NOT NULL is set for a column, and you
do not provide a value or a default, it will throw an error. That is the
gotcha.
Bob
On Dec 20, 2011, at 11:31 AM, Michael Doub wrote:
> Could I trouble someone for an example of how to insert a row in a SQLite
> database with a live code array then update that same record with an updated
> array?
>
> put revOpenDatabase("sqlite", thePath, , , , ) into tID
> put the "CREATE TABLE ContactData ( " & \
> "myKey integer PRIMARY KEY autoincrement," & \
> "RecordType text," & \
> "RecID text," & \
> "Name text," & \
> "GroupNbr text," & \
> "LastContact, text," & \
> "DaysTill text," & \
> "DataArray blob) " into tSQL
> revExecuteSQL tID, tSQL
>
> I think that I am ok up to here. I want to insert a record that has a
> RecordType of "0", all other fields empty except I want to put an livecode
> array into DataArray.
>
> This will get the array into text:
> put arrayEncode(tSettings) into tSettings; put base64Encode(tSettings) into
> tSettings
>
> I am unclear on how to do the insert or an update. Do I somehow have to
> create a long SQL statement with the actual data in the statement?
>
> A second database question. Does the myKey variable automatically get set to
> a unique value when data is inserted?
>
> Thanks in advance,
> Mike
>
> _______________________________________________
> use-livecode mailing list
> [email protected]
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode