使用C++通过ODBC向SQL Server2005插入binary(4)类型的数据,在程序中直接执行"insert into tbname (id, bnrdata) values (1, 0xd0abcdef)"可以插入成功,但将insert语句换成"exec insert_bnr 1, 0xd0abcdef"虽也能执行成功,但数据在目的表中变成了0xd0000000,估计是被第一个d后面的0截断了,存储过程insert_bnr如下:
...
CREATE procedure [dbo].[insert_bnr] @id int, @bnr binary
as
begin
insert into tbname (fid, bnrdata) select @fid, @bnr
end;