怎样实现存取SQL表image类型数据,请大虾指点!
各位大虾:
我在SqlServer2000的一个数据库表sysuser定义了一个[tp]字段,是image类型的,但我用如下程序保存和读出图片信息都没有成功,都是空文件,请各位大虾指点问题出在什么地方?改怎样修改才行?
*/存入图片到表中////////*
LOCAL cSQL1,nResule,ax,bx
nResule=0
ax=FILETOSTR('d:\123.jpg') &&要保存d:\123.jpg图片
bx='0x'-STRCONV(ax,13)
cSQL1="UPDATE sysuser WITH (ROWLOCK) set tp = ?bx where id = 1" &&在id号为1的记录中存入图片信息
nResule=SQLEXEC(Handle,cSQL1) &&更新库存
IF nResule # 1
MESSAGEbox('插入图片失败!',64,'提示信息')
ENDIF
*/从表中读出图片存储到D盘下更名为111.jpg/////////*
LOCAL cSQL1,nResule,file_mc,cfile,bx
nResule=0
file_mc='d:\111.jpg'
CURSORSETPROP("MapBinary",.T.,0) &&
cSQL1="select tp from sysuser where id = 1"
nResule=SQLEXEC(Handle,cSQL1,'temp1') &&读取图片
SELECT temp1
IF RECCOUNT()=1
IF !EMPTY(temp1.tp) and !ISNULL(temp1.tp)
bx=temp1.tp
cfile=SUBSTR(bx,3,LEN(bx)-2) &&去除0x
cfile=STRCONV(cfile,14)&&将读出的base64 编码数据转换为原始的未编码数据
STRTOFILE(cfile,file_mc,.F.)&&将数据内容写入文件'd:\111.jpg'
ELSE
MESSAGEbox('获取图片失败!',64,'提示信息')
ENDIF
ENDIF
USE