enquote



Converts the supplied Rexx value(s) into SQL literals. This method is useful to help construct SQL statements. The specified Rexx object(s) are converted to SQL literals by adding single quotes to the beginning and end of the string value of the object, escaping single quotes within the string value of the object, and changing the .nil object to SQL NULL.

Arguments: The single argument is:
values [optional] A Rexx object, or an array of Rexx objects, to be converted to SQL literals. If this argument is omitted then NULLis returned.
Return value: The string value of the specified object(s) as a SQL literal, or a comma separated list, of SQL literals.
Remarks: Theenquotemethods accepts a single argument,values. Ifvaluesis an array whosesizeis N, then each item at index 1 through N is converted to a SQL literal. Any index 1 through N that is not assigned an item is converted to SQL NULL. Likewise, if an item 1 through N is the .nilobject, that item is converted to SQL NULL. All other items are converted to the string value of the item, with a single quote added to the front and end of the string. If the string value contains any single quotes, those single quotes are escaped. If N is greater than 1, then each converted value is added to the returned string with a comma used as a separator. Ifvaluesis not an array, then it is taken to be a single value to be converted, and is converted in the same manner as a single item in an array is converted, as described above. This implies that ifvaluesis omitted altogether, it is converted to SQL NULL.
Details The functionality of theenquotemethod is similar to that of the SQLite sqlite3_mprintf API.
Example: This example shows how theenquotemethod can be used to create SQL INSERT statements that are not prone to SQL Injection flaws:
r1 = .array~new(4)
r1[1] = "Tom"
r1[2] = "Hanks"
r1[4] = "male"
r2 = .array~of("Mike", , "555-9988", .nil)
sql1 = "INSERT INTO my_table (fName, lName, phone, gender) VALUES("ooSQLite~enquote(r1)");"
sql2 = "INSERT INTO my_table (fName, lName, phone, gender) VALUES("ooSQLite~enquote(r2)");"
say sql1
say sql2
/* Output would be:
INSERT INTO my_table (fName, lName, phone, gender) VALUES('Tom', 'Hanks', NULL, 'male');
INSERT INTO my_table (fName, lName, phone, gender) VALUES('Mike', NULL, '555-9988', NULL);
*/
This example shows a conversion for a single string that has an apostrophe within it:
str = "It's a happy day!"
say .ooSQLite~Enquote(str)
/* Output would be:
'It''s a happy day!'
*/