hur.cn - 华软网

 热门搜索

pb中OLE的使用问题

  作者:未知    来源:网络    更新时间:2018/7/4
我使用的数据库是sql server2000,在表中,我使用了text类型的字段落,目的是存放文本文件。可我使用ole将文本文件存入数据库时,出现错误。不知道能否这样做,还是我做错了。如果能这样做,我程序哪里错了?如果不能这么做,也请高手指点。兄弟我很急,多谢!
------华软网友回答------
主要代码:
integer li_value
string ls_filename,ls_docname
blob lb_text
li_value=getfileopenname("select file:",ls_docname,ls_filename)
sle_1.text=ls_docname
li_value=ole_1.insertfile(ls_docname)
if li_value<>0 then
messagebox("错误",string(li_value))
return
end if
lb_text=ole_1.objectdata
  UPDATEblob student  
      set archives=:lb_text 
   where snumber='1';
messagebox("sqlca.sqlcode",string(sqlca.sqlcode))
IF sqlca.Sqlcode=0 THEN
commit;
else
rollback;
messagebox(string(sqlca.sqlcode),string(sqlca.sqlerrtext))
return
end if
编译能通过,更新时有错误,请高手指点
------华软网友回复------
晕,text字段是不用selectblob的,只有image类型的才用selectblob
------华软网友回复------
hangzhou6274(猎人):那该怎么办呢?我要存储文本文件,该用什么类型?大概怎么实现?多谢!
------华软网友回复------
使用sql server的读写大文本语句吧。

------华软网友回复------
我查了一下,好像text字段可以使用selectblob.我把代码改了一下,还是不行。
integer li_value
string ls_filename,ls_docname
blob lb_text
li_value=getfileopenname("select file:",ls_docname,ls_filename)
sle_1.text=ls_docname
li_value=ole_1.insertfile(ls_docname)
if li_value<>0 then
messagebox("错误",string(li_value))
return
end if
lb_text=ole_1.objectdata
SQLCA.AutoCommit = true
  UPDATEblob student  
         set archives=:lb_text 
       where snumber='1';
SQLCA.AutoCommit = false
//messagebox("sqlca.sqlcode",string(sqlca.sqlcode))
IF sqlca.Sqlnrows>0 THEN
commit;
else
rollback;
messagebox(string(sqlca.sqlcode),string(sqlca.sqlerrtext))
return
end if

------华软网友回复------
我也将sql server的每行最大字符改为8192,在查询分析器可以进行插入操作。用上面的代码就出现问题,请高手指教!

------华软网友回复------
如果将文本文件存入数据库,在数据库里看到的是文本的内容还是其他的什么形式?比如乱码.      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。