0

我正在尝试使用参数化 SQL 查询将 Guid 写入 Oracle 中的 RAW(16) 字段。

之前读取了 RAW(16),它作为一个变体字节数组(类型 VT_ARRAY | VT_UI1)从数据库中出来。因此,我现在尝试将一个值写回一个字节数组。

我的变体设置为 VT_ARRAY | 再次使用 VT_UI1,并使用 adUnsignedTinyInt | 调用 CreateParameter 广告数组。

不幸的是,这会抛出 0X800A0D5D 代码。

我还尝试使用“HEXTORAW('0000000000000000')”作为 BSTR 参数编写参数,在对 CreateParameter 的调用中使用 adBSTR。这次 CreateParameter 成功了,但是 _ADODB::CommandPtr 上的调用 Execute 然后引发了错误。

请有人指导我如何使用参数化 SQL 查询(理想情况下通过 C++ 使用 ADO)将 Guid 写入 Oracle 的 RAW(16)?

4

1 回答 1

0

我已经使用 VT_ARRAY | 我的变体中的 VT_UI1,将 adBinary 作为数据类型传递给 CreateParameter。

还有一个机会(从我读过的其他内容中)Oracle 会对仅包含 HEX 表示法的二进制数据的普通 BSTR 参数感到满意。

于 2013-09-20T16:12:39.620 回答