【问题标题】:Retrieve SQL text of ODBC prepared statement检索 ODBC 准备语句的 SQL 文本
【发布时间】:2016-12-04 04:34:09
【问题描述】:

我使用 ODBC API 创建准备好的语句:

SQLPrepare(hstmt, "INSERT INTO t (date) VALUES (?)", SQL_NTS);

一旦SQLPrepare 成功完成,就可以通过hstmt 句柄访问该语句。

只有hstmt 句柄,是否有任何方法、ODBC API 调用或其他方式来检索与准备好的语句关联的 SQL 文本?

换句话说,有什么方法可以找出传递给SQLPrepare调用的SQL?

我只找到了SQLNativeSql 函数,但它只允许解析和验证SQL 文本,所以它的工作方式有点像无操作SQLPrepare。这不是我要找的。​​p>

虽然,我希望找到一个通用的普通 ODBC 解决方案,而不是特定于任何 DBMS,但我主要使用 Microsoft ODBC Driver for SQL Server 连接到 SQL Server。

【问题讨论】:

  • 您在哪个 DBMS 中工作?

标签: sql sql-server odbc


【解决方案1】:

我不知道 ODBC API 中是否有包装的方法/函数,
但你可以尝试直接从 DB 调用它

select * from sys.dm_exec_sql_text(@sql_handle)

【讨论】:

  • 虽然我不能接受它作为答案,但我很欣赏它作为一个有趣的替代解决方案。对于记录/其他读者,这里有一个更完整的例子,展示了sys.dm_exec_requests.sql_handlestackoverflow.com/a/31968654/151641的使用
猜你喜欢
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多