检索ODBC准备语句的SQL文本
我使用ODBC API创建准备好的语句:检索ODBC准备语句的SQL文本,sql,sql-server,odbc,Sql,Sql Server,Odbc,我使用ODBC API创建准备好的语句: SQLPrepare(hstmt, "INSERT INTO t (date) VALUES (?)", SQL_NTS); 一旦SQLPrepare成功完成,就可以通过hstmt句柄访问该语句 只有hstmt句柄,是否有任何方法,ODBC API调用或其他方法,来检索与准备好的语句相关联的SQL文本 换句话说,是否有任何方法可以找出传递给SQLPreparecall的是什么SQL 我只找到了一个函数,但它只允许解析和验证SQL文本,所以它的工作方式有
SQLPrepare(hstmt, "INSERT INTO t (date) VALUES (?)", SQL_NTS);
一旦SQLPrepare
成功完成,就可以通过hstmt
句柄访问该语句
只有hstmt
句柄,是否有任何方法,ODBC API调用或其他方法,来检索与准备好的语句相关联的SQL文本
换句话说,是否有任何方法可以找出传递给SQLPrepare
call的是什么SQL
我只找到了一个函数,但它只允许解析和验证SQL文本,所以它的工作方式有点像no-opSQLPrepare
。这不是我要找的
虽然我希望找到一个通用的普通ODBC解决方案,而不是特定于任何DBMS,但我主要使用Microsoft ODBC驱动程序连接SQL Server。我不知道ODBC API中是否有包装的方法/函数,
但是您可以尝试直接从DB调用它
select * from sys.dm_exec_sql_text(@sql_handle)
您在哪个数据库管理系统中工作?虽然我不能接受它作为一个答案,但我很欣赏它作为一个有趣的替代解决方案。对于record/other Reader,下面是一个更完整的示例,展示了如何使用
sys.dm\u exec\u requests.sql\u handle
列