在我的程序中要将SYBASE数据表中的数据导入到FOXPRO中,其中SYBASE的TEXT字段就要导到FOXPRO的MEMO字段中,经过使用静态SQL语句测试,使用UPDATEBLOB可以将TEXT中的内容更新到MEMO字段中。可是我的程序中要使用动态SQL,因为FOXPRO表的名字和字段名都是由用户随意指定的。但是动态SQL好象不认UPDATEBLOB命令,执行时报错,错误信息为unrecognized command verb.如果我直接使用UPDATE命令的动态SQL,则程序不报错,但是无法完整保存MEMO字段中的内容。以下是代码
for i = 1 to li_rowcount
li_gh = dw_2.Object.gh[i]
for j = 1 to li_memo
lstr_memo = dw_2.GetItemString(i,ls_SMemo[j])//取得TEXT字段内容
lblb_memo = Blob(lstr_memo)
ls_update = "UPDATEBLOB " + istr_creat + " SET " + ls_Memo[j]&
+" = ? WHERE "+ String(ls_dbfgh) + " = " + String(li_gh)
PREPARE SQLSA FROM :ls_update USING itrans_dbf;//动态取得表名和字段
EXECUTE SQLSA USING :lblb_memo;//执行动态语句
if itrans_dbf.SQLCODE <> 0 THEN
rollback;
MessageBox(提示信息,"更新备注出错" + itrans_dbf.sqlerrtext)
return //出错信息
end if
next
next
请问我应该怎么做。
应该不能用动态SQL更新blob数据
换一种办法吧
up,等待高手!