通过ODBC API在预准备语句中使用变量名

时间:2015-02-28 14:24:43

标签: c++ odbc prepared-statement

我有一个C ++项目仍然使用连接的SQL语句而不是预处理语句。据我所见,该项目使用普通的ODBC API,没有任何第三方库。

现在我必须将这个项目转换为预备语句。

使用统一基础(UIB)的Delphi,我曾经写过像

这样的东西
Query.SQL.Text := 'INSERT INTO test (id, name) VALUES (:id, :name);'
Query.Params.ByNameAsInteger['id'] := 42;
Query.Params.ByNameAsString['name'] := 'Panic';
...

即使使用ODBC数据源,Qt中似乎也有类似的名称绑定(至少根据我刚刚发现的教程)。

根据MSDN看起来我必须使用SQLPrepare只使用引号作为占位符和SQLBindParameter。对于SQLBindParameter,我必须指定比使用UIB或qt

时更多的信息
// excerpt from MSDN example
SQLPrepare(hstmt, "UPDATE Parts SET Price = ? WHERE PartID = ?", SQL_NTS);
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 7, 0,
                 &Price, 0, &PriceInd);

我只是错过了一个部分,或者这是“#34;复杂的"什么时候使用普通的ODBC API?

0 个答案:

没有答案