queryExecute
Выполняет SQL-запрос и возвращает результат.
queryExecute(sql [, params, options]) → returns query
Справочник аргументов
sql string Обязательный
params any
options struct
Примеры Пример кода, вызывающего функцию queryExecute
Пример только с SQL. Предполагается, что источник данных по умолчанию указан (путём присвоения значения переменной this.datasource в Application.cfc)
qryResult = queryExecute("SELECT * FROM Employees"); Используйте :structKeyName в SQL и передайте структуру с соответствующими именами ключей.
qryResult = queryExecute("SELECT * FROM Employees WHERE empid = :empid AND country = :country", {country="USA", empid=1}); При передаче массива используйте ? в качестве заполнителя в SQL
qryResult = queryExecute("SELECT * FROM Employees WHERE empid = ? AND country = ?", [1,"USA"]); Если необходимо передать cfsqltype или другие атрибуты cfqueryparam, для каждого параметра можно передать структуру.
qryResult = queryExecute("SELECT * FROM Employees WHERE empid = :empid AND country = :country", {country={value="USA", cfsqltype="cf_sql_varchar"}, empid={value=1, cfsqltype="cf_sql_integer"}}); Если источник данных не задан с помощью this.datasource в Application.cfc или требуется указать его явно, используйте третий аргумент.
qryResult = queryExecute("SELECT * FROM Employees", {}, {datasource="myDataSourceName"}); Полный пример использования SQL-выражения и параметров запроса в виде структуры структур с указанием источника данных.
sql = "SELECT * FROM Employees WHERE empid = :empid AND country = :country";
qparams = structNew();
qparams.empid = { value=1, cfsqltype="cf_sql_integer" };
qparams.country = { value="Canada", cfsqltype="cf_sql_varchar" };
options = { datasource="myDataSourceName" };
qryResult = queryExecute(sql, qparams, options); Чтобы вернуть сгенерированный ключ запроса INSERT, необходимо указать переменную результата в третьем аргументе options.* Обратите внимание: SQL-запрос должен содержать ТОЛЬКО один оператор INSERT и никакого другого SQL-кода, иначе generatedKey будет недоступен.
queryExecute( "INSERT INTO employee ( firstname ) VALUES ( :firstname )", { firstname = { value="Han", cfsqltype="varchar" } }, { result="employee" } );
writeDump( employee.generatedKey ); Запрос к базе данных с использованием списка значений
keys = '1,2,3,4,5,6,7';
data = queryExecute("select * from sometable where somecolumn in (:keys)",{keys={value=keys,list=true}}); Запрос к локальной переменной с данными без обращения к базе данных
users = queryNew( "firstname", "varchar", [{"firstname":"Han"}] );
subUsers = queryExecute( "select * from users", {}, { dbtype="query" } );
writedump( subUsers ); Lucee 5+ Возврат объекта запроса, преобразованного в массив структур.
users = queryNew( "firstname", "varchar", [{"firstname":"Han"}] );
subUsers = queryExecute( "select * from users", {}, { dbtype="query", returntype="array" } );
writedump( subUsers ); Ожидаемый результат: [ { firstname: "Han" } ]
Lucee 4.5+ Возврат объекта запроса, преобразованного в массив структур.
users = queryNew( "firstname", "varchar", [{"firstname":"Han"}] );
subUsers = queryExecute( "select * from users", {}, { dbtype="query", returntype="array-of-entities" } );
writedump( subUsers ); Ожидаемый результат: [ { firstname: "Han" } ]
Lucee 5+ Возврат объекта запроса, преобразованного в структуру структур. (Ключ структуры определяется параметром "columnkey".)
users = queryNew( "id, firstname", "integer, varchar", [{"id":1, "firstname":"Han"}] );
subUsers = queryExecute( "select * from users", {}, { dbtype="query", returntype="struct", columnkey="id" } );
writedump( subUsers ); Ожидаемый результат: { 1: { id: 1, firstname: "Han" } }
© 2012–present Foundeo, Inc. and the CFDocs contributors.
Licensed under the MIT License.
ColdFusion is a trademark of Adobe Systems Incorporated.
https://cfdocs.org/queryexecute