如何从ColdFusion服务获取SQL文本

时间:2017-05-22 15:22:05

标签: coldfusion

我已经获得了一个使用AngularJS和ColdFusion即服务的项目。我理解Angular,但我之前从未使用过ColdFusion。在ColdFusionComponent的CFFunction标记内,我有一些正在生成的复杂SQL。除了从服务返回的实际数据之外,我希望服务返回执行的SQL的实际文本。有人能告诉我这是怎么做到的吗?

1 个答案:

答案 0 :(得分:2)

来自评论

为了获取已执行的SQL语句,您可以使用<cfquery>标记的result属性。当您包含该属性时,ColdFusion将返回有关查询的更多信息,包括已执行的SQL语句。 “使用”部分下的See the docs here(大约在页面中间)以获取更多信息。

参考文献:

  

cfquery标记还在结构中返回以下结果变量。您可以使用在result属性中指定的名称前缀来访问这些变量。例如,如果将名称myResult分配给result属性,则将检索通过访问#myResult.sql#执行的SQL语句的名称。结果属性为可能同时从多个页面调用的函数或CFC提供了一种方法,以避免将一个调用的结果覆盖到另一个调用。 INSERT查询的结果变量包含一个键值对,它是插入行的自动生成的ID;这仅适用于支持此功能的数据库。如果插入了多个记录,则该值可以是ID列表。密钥名称是特定于数据库的。

Variable name              Description
result_name.sql            The SQL statement that was executed.
result_name.recordcount    Number of records (rows) returned from the query.
result_name.cached         True if the query was cached; False otherwise.
result_name.sqlparameters  An ordered Array of cfqueryparam values.
result_name.columnList     Comma-separated list of the query columns.
result_name.ExecutionTime  Cumulative time required to process the query.
result_name.IDENTITYCOL    SQL Server only. The ID of an inserted row.
result_name.ROWID          Oracle only. The ID of an inserted row. This is not the
                           primary key of the row, although you can retrieve rows 
                           based on this ID.
result_name.SYB_IDENTITY   Sybase only. The ID of an inserted row.
result_name.SERIAL_COL     Informix only. The ID of an inserted row.
result_name.GENERATED_KEY  MySQL only. The ID of an inserted row. MySQL 3 does not 
                           support this feature.
result_name.GENERATEDKEY   Supports all databases. The ID of an inserted row.