首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ole对象(包含jpg、excel、pdf文件)保存到powerbuilder中

如何将ole对象(包含jpg、excel、pdf文件)保存到powerbuilder中
EN

Stack Overflow用户
提问于 2015-03-01 11:32:20
回答 1查看 2.4K关注 0票数 1

我在oracle中使用powerbuilder控件以blob格式保存数据。

现在我们要将这些blob转换成不同格式的文件(PDF、JPG、EXCEL、TEXT、DOC)。

有100多万个文件,所以使用olecontrol进行手动打开和保存是不容易的。

我们可以通过脚本自动保存blob来在powerbuilder中进行文件吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-12 00:16:19

是的,有可能:

  1. 在PowerBuilder嵌入式SQL中编写一个游标,以便为blob表中的每条记录获取键和和文件扩展名(如果有这些的话)。这类事情的语法如下所示: Long ll_Key String ls_Ext声明GetBlobCursor游标用于选择blob_key,blob_table中的blob_extension;/*需要在这里循环,而SQLCA.SQLCode很好*/获取GetBlobCursor到:ll_Key,:ls_Ext;
  2. 使用SELECTBLOB嵌入式SQL语句将blob数据放入PowerBuilder BLOB变量: Blob lblob_File SELECTBLOB文件Blob从blobtable变为:lblob_File,其中blob_key = :ll_Key;
  3. 使用FileOpen和FileWrite编写具有有效文件名和扩展名的blob: Long ll_Loops,ll_Step Int li_File String ls_Path ls_Path = ".“+ String(ll_Key) + ".”+ ls_Ext li_File = FileOpen(ls_Path,StreamMode!,写!,LockWrite!,追加!)如果li_File >0,那么//确定调用FileWrite ll_FileLen = Len(lblob_File)的次数,如果ll_FileLen > 32765,则如果Mod(ll_FileLen ),32765) =0,则ll_Loops = ll_FileLen/32765 ll_Loops = (ll_FileLen/32765) +1 ll_Loops =1 To ll_Loops FileWrite(li_File,BlobMid(lblob_File,((ll_Step - 1)*32765) + 1,32765)下一个//记录错误,或者如果FileClose(li_File)处理End

希望这能让你开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28793034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档