ADO 创建参数在尝试从 C++ 写入 Oracle 的 RAW(16) 字段时失败并出现0x800A0D5D



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

之前读取 RAW(16) 后,它以字节的变体数组(类型 VT_ARRAY |VT_UI1)。 因此,我现在尝试将值写回字节数组。

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

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

我还尝试使用"HEXTORAW('000000000000000000')"作为BSTR参数编写参数,在调用CreateParameter时使用adBSTR。 这次 CreateParameter 成功了,但对 _ADODB:CommandPtr 的调用 Execute 随后抛出了错误。

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

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

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

相关内容

  • 没有找到相关文章

最新更新