More problems with revExecuteSQL

Len Morgan len-morgan at crcom.net
Thu Nov 1 08:53:43 EDT 2007


I believe that even with variable substitution, you have to put ' around 
any non-numeric parameter.  Your SQL statement doesn't have that.  The 
13T01 is the time.  It appears that the expression for the date is 
getting evaluated as a math function.

I think your template SQL statement should be something like:

... VALUES (':1',':2',...

Hope that helps

len morgan


David Burgun wrote:
> Hi,
>
> After finding out that the data I was sending with revExecuteSQL 
> needed to be escaped if it contains double-quotes or colon etc. I 
> decided it would be better to put the data into an array and use the 
> parameter substitution feature. When I run it now, I get  the 
> following error: unrecognized token: "13T01"
>
> And I can't figure out could be wrong! Please see of the function 
> where this occurs followed by the contents of the variables.
>
> Anyone got any ideas or what could be wrong? Not sure what to do now! 
> I need to be able to write arbitrary UTF8 string to a SQLite database. 
> Doesn't seem a lot to ask! lol
>
> All the Best
> Dave
>
> --------------------------------------------------------------
> -- 
> --  UtilDBInsertRecord
> -- 
> ---------------------------------------------------------------
> function UtilDBInsertRecord theDatabaseID,theTableName,theRecordKeyArray
>   local mySQLCode
>   local myKeyList
>   local myKeyName
>   local myKeyText
>   local myResult
>   local myTempKeyList
>   local myValueList
>   local myParameterList
>   local myParameterArray
>   local myParameterNumber
>
>   put the keys of theRecordKeyArray into myKeyList
>   if myKeyList <> empty then
>     sort lines of myKeyList
>     put replaceText(myKeyList,cr,",") into myTempKeyList
>     --delete char -1 of myTempKeyList
>
>     put empty into myParameterArray
>     put empty into myParameterList
>     put empty into myValueList
>     put 1 into myParameterNumber
>     repeat for each line myKeyName in myKeyList
>       put ":" &  myParameterNumber & "," after myParameterList
>       put theRecordKeyArray[myKeyName] into 
> myParameterArray[myParameterNumber]
>       add 1 to myParameterNumber
>     end repeat
>
>     delete char -1 of myParameterList
>     put "INSERT INTO " & theTableName & " (" & myTempKeyList & ") " & \
>         " VALUES (" & myParameterList & ") " into mySQLCode
>
>     revExecuteSQL theDatabaseID,mySQLCode,"myParameterArray"
>     put the result into myResult
>
>     if myResult <> empty then
>       if myResult is not an integer then
>         answer error "Error in UtilDBInsertRecord, revExecuteSQL:" && 
> myResult
>         breakpoint
>       end if
>     end if
>   end if
>
>   return myResult
> end UtilDBInsertRecord
>
> -------------------------------------------------------------------------------------------------------- 
>
> Variable dump when the error occurs:
>
>
> mySQLCode:
>
> INSERT INTO MusicBase 
> (AlbumName,AlbumRating,AlbumRatingKind,ArtistName,BitRate,BPM,DateAdded,Duration,FileLocation,FileSizeBytes,Genre,ModDate,PlayedCount,PlayedDate,SampleRate,TrackName,TrackRating,TrackRatingKind,TrackSkippedCount,TrackSkippedDate,UnplayedFlag)  
> VALUES 
> (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21) 
>
>
>
> myResult            unrecognized token: "13T01"
>
> myParameterList        
> :1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21 
>
>
> myParameterArray:
>
> [1]    The Best Of Bob Dylan I
> [2]    0
> [3]    computed
> [4]    Bob Dylan
> [5]    192
> [6]    0
> [7]    2007-10-29T10:25:04Z
> [8]    168463
> [9]    file://localhost/Users/Dave/Music/iTunes/iTunes Music/Bob 
> Dylan/The Best Of Bob Dylan I/01 Blowin' In The Wind.mp3
> [10]    4045324
> [11]    Rock
> [12]    2003-07-13T01:58:33Z
> [13]    0
> [14]    missing value
> [15]    44100
> [16]    Blowin' In The Wind
> [17]    0
> [18] computed
> [19]    0
> [20]    missing value
> [21]    ***NULL***
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your 
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>




More information about the use-livecode mailing list