HSTMT,UCHAR,SDWORD在ODBC日志中的含义

时间:2016-12-26 07:11:15

标签: sql postgresql odbc psqlodbc

我的ODBC日志中有以下几行:

(场景:pgAdmin4,在名为系统管理的另一个应用程序中通过ODBC32使用PostgreSQL服务器)

System Admi 6a0-6f8 ENTER SQLExecDirect 
        HSTMT               0x00630718
        UCHAR *             0x036B29C0 [      63] "create table new (npages integer, ifnds integer, ifnid integer)"
        SDWORD                    63

我需要知道HSTMTUCHAR*SDWORD的含义。他们旁边的那些数字是什么意思?

2 个答案:

答案 0 :(得分:1)

这是ODBC跟踪的记录

有一个带有语句句柄0x00630718的过程“SQLExecDirect”,文本参数(作为指针传递)是“create table ...”,最后一个参数是text的大小(作为word类型传递)。请参阅MSDOC中的相关replyHSTMTUCHARSDWORDS是C,C ++ MS Windows API使用的数据类型。

答案 1 :(得分:1)

来自文章Everything You Want To Know About ODBC Tracing

  

在跟踪日志中,您将看到句柄的数据类型    SQLHANDLE HENV / SQLHENV ,HDBC / SQLHDBC HSTMT / SQLHSTMT 即可。这个   value对于被调用的特定系列项是唯一的。您   可以在跟踪日志中搜索此句柄号和每次调用   将显示手柄上。这允许你只选择   在跟踪日志中调用与错误消息相关的内容。保持   记住,一些应用程序可能会创建多个句柄。例如,   您的应用程序可以连续执行三个语句   驻留在不同的声明句柄上。

有关示例和更多详细信息,请参阅下一个好文档: -

How to read an ODBC trace file.rtf