【发布时间】:2015-02-06 02:38:14
【问题描述】:
我的 ODBC 代码(从 C 库调用)出现了奇怪的情况。基本上,我有以下事件序列:
- 创建插入语句(只是一个字符串)
- 使用该插入语句字符串调用 SQLPrepare
- 绑定各种参数(列值),使用 SQLBindParameter
- 调用 SQLExecute 插入行(顺便说一句,我可以 查看 MySQL 数据库中的行)
-
创建“select last_insert_id()”语句字符串
注意:如果在 SQL Server 模式下,我们将创建一个“select @@identity” 声明
-
使用 SQLBindCol 绑定列 - 这是我得到“无效 描述符索引”错误
注意:如果在 SQL Server 模式下,这可以正常工作,没有错误
调用 SQLExecDirect 以获取最后一个插入 ID - 这永远不会发生 因为 SQLBindCol 错误
在这种情况下,标准的 MySQL ODBC 连接器是否需要一些特殊的东西?有没有人有这种类型的“插入”然后“获取最后插入 id”行为的 ODBC 示例?也许我需要在第 6 步(绑定列的位置)之前调用“SQLPrepare”?另一种问这个问题的方法:每个 SQLExecute 或 SQLExecDirect 调用是否应该有一个 SQLPrepare 调用?
我知道它直接在 SQL 中工作,所以问题是我的 C ODBC 代码。
谢谢。
【问题讨论】: