尝试从C ++写入Oracle的RAW(16)字段时,ADO CreateParameter失败并显示0x800A0D5D

时间:2013-09-18 12:15:31

标签: c++ oracle ado guid

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

之前已经读过RAW(16),它作为字节的变量数组(类型VT_ARRAY | VT_UI1)脱离数据库。因此,我现在尝试将值写回为字节数组。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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