PB 从 SQLServer 读写 BLOB 问题

喝醉的咖啡 2004-03-30 07:10:03
最近要改造一套原先采用 PB7/SQLServer2000 构建的 办公自动化系统。

全部架构及程序已经用 VC/VB 重新实现,加入了很多很先进的设计和功能。正当对各个模块都进行了测试,并且连调通过,准备发布给测试组进行全面测试的时候,出现了一个问题:

某个表中有一个 Content 字段,类型为 TEXT,用于将 Word/PDF 文档保存到数据库中(晕)。
现在发现,无论采用 VB/VC,使用 ADO 2.7 无法用 Chunk 方法读取该字段,总是错误。后来才用 ADODB.Stream ,且只有设置 Mode 为 text 方式才可以对该字段进行读写。然而,将原来由 PB 程序写入的数据从表中读出写入本地文件,该文件就已经被损坏(存取Table的方式不同?)同样,将数据写入表中,由 PB 的程序来读取也同样不正常。

不知道谁有类似的经验?如何解决?

如果实在不行,只有两个办法:
1、用 PB 写一个 COM 组件完成该部分的工作
2、用 PB 写一个 exe 程序完成该部分的工作——下下策

可那几个 PB 程序员比较菜,我试着按照 PB help 来创建 COM 组件,设置好了有关 COM 组件的 progid/guid/typelib 等等之后,在 User Object 中加入函数后编译出来的组件(Native)却连注册都不能成功!
所以,第二个问题还想请教:
如何在 PB7/8 中创建 COM 组件?

因为我实在没足够的时间去摸索 PB 了。在这件事情上,PB 程序员和测试组都处于等待状态,而还有很多事情也必须我来解决。如有朋友指点迷津解决问题,愿更高分相赠。

对所有参与讨论的朋友均不甚感激!

...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
喝醉的咖啡 2004-04-08
  • 打赏
  • 举报
回复
PB8 写出来的组件 OK 啦,谢谢各位。

问题在 PB7 有很多很低级的错误。不过也发现了一个诀窍:

创建 COM 组件对象或者Project的时候,可以修改 ProgID,但最好不要修改 ClassName
另外,新创建的 uo 名字必须与Component名字一样,否则调用不了具体方法。


然后,再COM Project的属性中选中关联的 pbl 文件。这样,组件才会提供真正的方法(写在你的uo里了)
uo 里的 instance 变量,如果不希望被外部访问,要在变量声明前加上 protected 关键字,如:
Protected String ls_Version;

然后编译 pbl 为 pbd,之后选择 COM 项目,编译成 dll。

随你发布的 dll 带上 PB 运行库文件,OK

打倒PB,散分!
yewenlin 2004-04-07
  • 打赏
  • 举报
回复
不会,我也想知道。帮你顶吧
喝醉的咖啡 2004-04-07
  • 打赏
  • 举报
回复
up
喝醉的咖啡 2004-04-06
  • 打赏
  • 举报
回复
benjaminz(RockDJ)
我根据自己在COM编程方面的经验和PB的help做了com组件,注册的时候无法通过。而根据你给我的那篇文章的例子,一模一样来做,可以注册,但运行时错误(已经复制了运行环境的dll文件)。

我换PB8/PB9试试看。PB毛病太多了,真麻烦,编辑环境都一大堆低级错误。

sigh
kakugigo 2004-04-01
  • 打赏
  • 举报
回复
没遇到过
用PB做个DLL试试,不过我没试过
应该还有别的变通方法
喝醉的咖啡 2004-04-01
  • 打赏
  • 举报
回复
benjaminz(RockDJ) , thanks

Li_Dinosaur(朋友) , I need use VB/VC reading the datas written by PB.
Li_Dinosaur 2004-03-31
  • 打赏
  • 举报
回复
直接用 UPDATEBLOB 和selcetbolb来存取比较好.
鸡翅多 2004-03-31
  • 打赏
  • 举报
回复
看看这个?
http://www.csdn.net/develop/article/16/16407.shtm
wiselyjs 2004-03-30
  • 打赏
  • 举报
回复
关注
帮你顶

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧