起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 590|回复: 14

【搞定】blob字段改为sql类型的问题**

[复制链接]
发表于 2007-4-5 13:53:41 | 显示全部楼层 |阅读模式
myDataSet:TDataSet;这是自己定义的TDataSet;
myDataSet.Data:=DataSet.Data;  让myDataSet与界面的dataset同步
原来没有使用非结构化类型时,是可以同步的,使用非结构化字段后,blob字段的内容成了一串字符如:CD5B8016B048424DB4CE903D2C0D6399,
我的程序需要保持两个dataset同步,特别是这个blob字段,该如何做!!
回复

使用道具 举报

发表于 2007-4-5 14:24:14 | 显示全部楼层
顶一下,等待中
回复 支持 反对

使用道具 举报

发表于 2007-4-5 16:13:19 | 显示全部楼层
楼主,非结构化字段是在该字段中存储一个guid字符串。
在另外的表中存储对应blob数据(根据GUID检索,可能会对应多条)

所以你在赋值data后,会读取到一个guid

请尝试使用TClientDataSet.CloneCursor来进行数据赋值
回复 支持 反对

使用道具 举报

发表于 2007-4-5 16:23:36 | 显示全部楼层
我试验一下,谢谢,有结果跟帖告知。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-6 11:01:53 | 显示全部楼层
不行呀,难道将数据放进去就取不出来了吗,数据到底缓存在哪个地方呀,如果我为保存前,数据肯定在本地呀,请再想想办法吧
回复 支持 反对

使用道具 举报

发表于 2007-4-6 11:05:28 | 显示全部楼层
楼主,是怎么不行?

非结构化数据是保存在 系统空间\系统数据库\非结构化表 中的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-6 13:18:51 | 显示全部楼层
myDataSet:TDataSet;这是自己定义的TDataSet;
myDataSet.Data:=DataSet.Data
我使用TBlodfield( myDataSet.fieldByname("")).savetofile;
出现异常,因为该字段为tstringfield,
但是使用TBlodfield( DataSet.fieldByname("")).savetofile;是可以的,但是我的程序需要使用
myDataSet为tree排序,直接使用DataSet就没办法重新排序了,根据tree的节点生成文档,为什么本来的dataset可以使用这个字段为tblodfield?
回复 支持 反对

使用道具 举报

发表于 2007-4-6 13:56:10 | 显示全部楼层
应为DataSet是TSQLDataSet类型,其中包含了平台定义的一些业务属性:自动填充、查找属性、非结构化字段存储等。

你定义的TDataSet是没有这些特性的。而且你使用Data赋值,也只是把数据集的数据赋值了,而没有涉及到业务属性,所以不能把非结构化字段guid值对应的ole值取出。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-6 16:05:16 | 显示全部楼层
那我应该如何操作才能保持数据同步呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-6 16:06:13 | 显示全部楼层
TClientDataSet.CloneCursor这个也不能拿到blob字段
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 02:25 , Processed in 0.041490 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表