vfp读取oracle表long raw类型字段问题
项目比较复杂,简单的说是这样:
vfp表VT1,F1 N(4),MYIMG BLOB
MYIMG是存放多种类型图像的字段,此字段类型不能修改
oracle新建表myuser.ot1(f1 number(4),myimg long raw)
vfp 上传到 oracle,如下:
use VT1
select VT1
scan
inreturn=sqlexec(lreturn,"insert into myuser.ot1(f1,myimg) values(?VT1.f1,?VT1.MYIMG)")
select VT1
endscan
&&操作成功,oracle可以读取到图像
oracle下载到vfp如下:
inreturn=sqlexec(lreturn,"select * from myuser.ot1","temp")
if inreturn>0
select temp
copy to VT2
add table VT2
else
messagebox(inreturn)
endif
&&下载成功。可是VT2.myimg变成了通用型字段,我的需求是VT1.myimg、VT2.myimg都是blob型。
尝试解决如下:
1、ot1.myimg类型改为blob。结果:上传、下载均失败。
2、将下载得到的通用型字段强制转换为blob类型。结果:项目读取失败。
问题:vfp和oracle的blob类型如不一样,怎么转换?vfp通用型转换为blob有无读取方法?
谢谢!
[解决办法]
发送 select * from ... 到后台之前,先执行 CursorSetProp("MapBinary", .t., 0) 就不会有通用型字段了
[解决办法]
建议在主程序开头加代码:
CursorSetProp("MapBinary",.T.,0)