Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Elegant ideas someone?

From: Tom:Conlin:gmai:l at: 11-Aug-2007 18:39

Kai Peters wrote:
> In the function below (intended to be used with Nenad's MySQL driver) the > newvalue & keyvalue may need to be framed > by single quotes depending on the datatype one passes in. As newbie, I have > found a rather dumb and lengthy solution > that works. > > What I am after is an elegant, REBOL-esque way of achieving this? > > Any takers? > Kai > > update-one-record: func[ "Returns False on error or affected row count on > success" > tablename [string!] fieldname > [string!] newvalue [ block ] keyfieldname [string!] keyvalue [block!]] [ > conn-error: try [ > mysqlport: open omysql-url > insert mysqlport [ { update ? set ? = ? where ? = ? } tablename > fieldname newvalue keyfieldname keyvalue ] > affected-rows: mysqlport/locals/matched-rows > close mysqlport > false ; no error if we get here! > ] > either error? conn-error [ conn-error: disarm conn-error stat-upd sbar > reform [ "MySQL-Connection error: " conn-error/arg1 ] false ] [ > affected-rows ] > ] >
with out any testing or real knowledge of what values may/can be passed ... quote: func [b block!][ either word? first b [rejoin ["'" b "'"]] [first b] ] update-one-record: func[ "Returns False on error or affected row count on success" tablename [string!] fieldname [string!] newvalue [block ] keyfieldname [string!] keyvalue [block!] ][ newvalue: quote newvalue keyvalue: quote keyvalue conn-error: try [ mysqlport: open omysql-url insert mysqlport [ { update ? set ? = ? where ? = ? } tablename fieldname newvalue keyfieldname keyvalue ] affected-rows: mysqlport/locals/matched-rows close mysqlport false ; no error if we get here! ] either error? conn-error [conn-error: disarm conn-error stat-upd sbar reform [ "MySQL-Connection error: " conn-error/arg1 ] false ] [affected-rows] ]