Xbasic
argument_add_array_argument Function
Syntax
V argument_add_array_argument(SQL::Arguments args ,C argName ,C argType ,C argValues )
Arguments
- argsSQL::Arguments
The object that you want to add an argument array or update an existing argument array.
- argNameCharacter
The name of the argument array to add to the args object.
- argTypeCharacter
The argument type. For example, "C" for "character" or "N" for "numeric".
- argValuesCharacter
A CR-LF delimited list of values.
Description
Adds or updates and array argument to an SQL::Arguments object. The SQL::Arguments object can be populated with argument arrays (typically used when passing values to a SQL query that uses an IN clause).
Example
dim args as SQL::Arguments
dim cities as c
cities = <<%txt%
London
Seattle
Madrid
%txt%
argument_add_array_argument(args,"cities","C",cities)
dim cn as SQL::Connection
? cn.open("::Name::AADemo-Northwind")
= .T.
? cn.execute("SELECT CustomerID, CompanyName, City FROM customers WHERE City IN (:cities)",args)
= .T.
dim json as c
json = cn.resultSet.ToJSON()
? convert_utf8_to_acp(json)
= [
{"CustomerID" : "AROUT", "CompanyName" : "Around the Horn", "City" : "London"},
{"CustomerID" : "BOLID", "CompanyName" : "Bólido Comidas preparadas", "City" : "Madrid"},
{"CustomerID" : "BSBEV", "CompanyName" : "B's Beverages", "City" : "London"},
{"CustomerID" : "CONSH", "CompanyName" : "Consolidated Holdings", "City" : "London"},
{"CustomerID" : "EASTC", "CompanyName" : "Eastern Connection", "City" : "London"},
{"CustomerID" : "FISSA", "CompanyName" : "FISSA Fabrica Inter. Salchichas S.A.", "City" : "Madrid"},
{"CustomerID" : "NORTS", "CompanyName" : "North\/South", "City" : "London"},
{"CustomerID" : "ROMEY", "CompanyName" : "Romero y tomillo", "City" : "Madrid"},
{"CustomerID" : "SEVES", "CompanyName" : "Seven Seas Imports", "City" : "London"},
{"CustomerID" : "WHITC", "CompanyName" : "White Clover Markets", "City" : "Seattle"}
]The next example demonstrates creating an array of numeric values:
dim args as sql::Arguments
dim ids as C
ids =<<%txt%
2
3
5
6
%txt%
argument_add_array_argument(args,"ids","N",ids)
dim cn as sql::Connection
? cn.open("::Name::AADemo-Northwind")
= .T.
? cn.execute("SELECT * FROM Products where ProductID IN (:ids)",args)
= .T.
? cn.ResultSet.toJSON()
= [
{"ProductID" : "2", "ProductName" : "Chang", "SupplierID" : "1", "CategoryID" : "1", "QuantityPerUnit" : "24 - 12 oz bottles", "UnitPrice" : "19", "UnitsInStock" : "17", "UnitsOnOrder" : "40", "ReorderLevel" : "25", "Discontinued" : "F"},
{"ProductID" : "3", "ProductName" : "Aniseed Syrup", "SupplierID" : "1", "CategoryID" : "2", "QuantityPerUnit" : "12 - 550 ml bottles", "UnitPrice" : "10", "UnitsInStock" : "13", "UnitsOnOrder" : "70", "ReorderLevel" : "25", "Discontinued" : "F"},
{"ProductID" : "5", "ProductName" : "Chef Anton's Gumbo Mix", "SupplierID" : "2", "CategoryID" : "2", "QuantityPerUnit" : "36 boxes", "UnitPrice" : "21.35", "UnitsInStock" : "0", "UnitsOnOrder" : "0", "ReorderLevel" : "0", "Discontinued" : "T"},
{"ProductID" : "6", "ProductName" : "Grandma's Boysenberry Spread", "SupplierID" : "3", "CategoryID" : "2", "QuantityPerUnit" : "12 - 8 oz jars", "UnitPrice" : "25", "UnitsInStock" : "120", "UnitsOnOrder" : "0", "ReorderLevel" : "25", "Discontinued" : "F"}
]See Also