起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 333|回复: 13

【结贴】[请求]一个关于DatasetBroker的问题

[复制链接]
发表于 2009-10-20 15:32:01 | 显示全部楼层 |阅读模式
在MainForm创建事件中执行了以下查询语句
DataSetBroker1.DataSet.Close;
     Tsqldataset(DataSetBroker1.DataSet).SQL.Clear;
     Tsqldataset(DataSetBroker1.DataSet).SQL.Text:='select   name   from   syscolumns   where   id=object_id(''xsddb'') ';
         
DataSetBroker1.DataSet.Open;

在窗体中另外有一个DataEdit组件也使用了DataSetBroker1指向数据集的一个字段

然后编译无误,运行时报错说是DataEdit指向的字段不存在

这个问题的原因是什么呢?是那个SQL语句更改了数据集吗?
回复

使用道具 举报

发表于 2009-10-20 15:42:28 | 显示全部楼层
上面的sql赋值 你只查询出了一个列:name
你看看那个dataedit引用的字段列是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-20 16:56:14 | 显示全部楼层
字段是查询前DataSetBroker指向的原数据集的字段 不在查询结果中
回复 支持 反对

使用道具 举报

发表于 2009-10-20 16:59:02 | 显示全部楼层
关键是你1楼的代码修改了此数据集 的sql语句了。
回复 支持 反对

使用道具 举报

发表于 2009-10-20 17:00:06 | 显示全部楼层
先取消dataedit 的 DataSource  和 DataEdit 这两个属性,然后再修改数据集的SQL
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-20 17:08:10 | 显示全部楼层
嗯   就是说在修改了数据集的SQL之后,DataSet的内容变成了执行SQL语句后的结果集了,DataEdit不能使用再指向该数据集的原有字段了,是这样的吗?
如果在执行了以上SQL语句后,仍然想用DataEdit指向原数据集的字段,应该如何设置?
回复 支持 反对

使用道具 举报

发表于 2009-10-20 17:10:17 | 显示全部楼层
楼主,你这个dataedit字段执行的字段名是 name吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-20 17:12:35 | 显示全部楼层
不是  是xsddb表里的ddbh字段
回复 支持 反对

使用道具 举报

发表于 2009-10-20 17:14:27 | 显示全部楼层
那就不可以了。
还是上面的说法,因为你改变了此数据集的 sql,只查询出了name这列,而你的dataedit表现的是此数据集的 ddbh这个列(且表都不一样了),那肯定就不可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-20 17:18:43 | 显示全部楼层
就是说业务信息里的这个数据集这是一个类似于映像的东西,在执行SQL语句后会被修改?
但是如果是这样,但是为什么程序运行完之后  去业务信息里查看这个数据集还是最初的那个,而不是执行SQL后的结果集呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 06:26 , Processed in 0.036863 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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