[OT] Problem with MySQL Insert
Paul Foraker
paul at whitefeather.com
Wed Mar 25 00:48:01 EDT 2015
In a table in a MySQL database, I need a field displaying a time period
corresponding to the half hour period during which a record was posted. The
period is in the form "HH:MM-HH:MM AM|PM". I have set the field type to
VARCHAR(10) and LiveCode is passing the string to the query handler. MySQL
is interpreting the incoming text as a date and converting it to my local
offset from server time.
In the Variable Watcher, before the revExecuteSQL, the pPeriod has the
correct time period; e.g., 11:00-11:30 PM. In the database, Sequel Pro
shows the period field with a value of 6:00-6:30 PM when Jacque in
Minnesota posts the record at 11:00 PM Minnesota time, and 4:00-4:30 PM
when I do it in California.
I'm surprised that MySQL is doing this interpretation of a character string
to a time value. How do I prevent that from happening?
In Sequel Pro, I entered this command:
INSERT INTO report
(`shortdate`,`period`,`dsp_id`, `dsp_name`, `client_id`,`client_name`,
`behavior_label`, `behavior_desc`, `observed`)
VALUES ("3/15/2014","12:30-1:00
PM",22,"fred",22,"lucy","jumping","high",1)
and the period field correctly displayed "12:30-1:00 PM".
Here's the LiveCode handler:
on sendReport pShortDate,pPeriod,pDSPid,pDSPname,pClientID,pClientName,pRows
getConnected ## establishes the database connection
set the itemDel to tab
put "INSERT INTO report (`shortdate`,`period`,`dsp_id`, `dsp_name`,
`client_id`,`client_name`, `behavior_label`, `behavior_desc`, `observed`)"
&& \
"VALUES " into tSQL
repeat for each line thisRow in pRows
put "('" & pShortDate & "', '" & pPeriod & "', '" & pDSPid & "', '" &
pDSPname &"', '" & pClientID &"', '" & pClientName &"', '" & \
item 1 of thisRow & "', '" & item 2 of thisRow & "', '" & item 3
of thisRow & "')," after tSQL
end repeat
put ";" into last char of tSQL
revExecuteSQL gBTdbID,tSQL
...
Any ideas how to do this?
More information about the use-livecode
mailing list