Я проголосовал за ответ Дейва, так как думал, что он хорошо поработал.
Я хотел бы добавить, что есть также несколько различных инструментов, разработанных для ColdFusion, которые могут упростить многие типичные задачи SQL, которые вы, вероятно, будете выполнять. Есть очень легкий инструмент под названием DataMgr , написанный Стивом Брайантом, а также Transfer от Марка Манделя, Reactor , который был первоначально создан Дугом Хьюзом и одним из них. Я разработал под названием DataFaucet . У каждого из них есть свои сильные и слабые стороны. Лично я думаю, что вы склонны считать DataFaucet тем, кто даст вам наилучшую возможность оставаться в cfscript, с различными синтаксисами для построения различных типов запросов.
Вот несколько примеров:
qry = datasource.select_avg_price_as_avgprice_from_products(); //(requires CF8)
qry = datasource.select("avg(price) as avgprice","products");
qry = datasource.getSelect("avg(price) as avgprice","products").filter("categoryid",url.categoryid).execute();
qry = datasource.getSelect(table="products",orderby="productname").filter("categoryid",url.categoryid).execute();
Инфраструктура гарантирует, что cfqueryparam всегда используется с этими операторами фильтра для предотвращения атак с использованием SQL-инъекций, и существует аналогичный синтаксис для операторов вставки, обновления и удаления. (Есть пара простых правил, чтобы избежать sql-инъекций .)