Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索ODBC准备语句的SQL文本_Sql_Sql Server_Odbc - Fatal编程技术网

检索ODBC准备语句的SQL文本

检索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文本,所以它的工作方式有

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

SQLPrepare(hstmt, "INSERT INTO t (date) VALUES (?)", SQL_NTS);
一旦
SQLPrepare
成功完成,就可以通过
hstmt
句柄访问该语句

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

换句话说,是否有任何方法可以找出传递给
SQLPrepare
call的是什么SQL

我只找到了一个函数,但它只允许解析和验证SQL文本,所以它的工作方式有点像no-op
SQLPrepare
。这不是我要找的


虽然我希望找到一个通用的普通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