求助:TClientDataSet的使用(急)!!!

lingice 2001-12-03 08:43:52
各位大虾,下地我快要被急疯了!请看:
我要做一个两层的数据库,在本地数据库上我后台使用的是ACCESSS数据库。我在一个
Form上放了TClientDataSet、TDBGrid、TDataSetProvider、TDataSource、TDatabase,相
应设置为:TDataSource1的DataSet为TClientDataSet1,TClientDataSet1的PrvoiderName
为TDataSetProvider1,TDBGrid1的DataSource为TDataSource1,其他的属性基本上都是默
认值。
我在Button的OnClick事件中加上如下代码:
Procedure TForm1.Button5Click(Sender: TObject);
Begin
With ClientDataSet1 Do
Begin
Close;
CommandText :=XXXXXX;(这是一条已经测试过的SQL语句,Select xxxxxx)
open;//open可以运行,但是改成Execute可以编译,但是运行到这就报错!
//data := DataSetProvider1.Data;
End;
//ClientDataSet1.UpdateRecord;
ShowMessage(ClientDataSet1xmmc.Value);//运行时显示为空
End;

我通过SQL montier监测、发现与巨已经被执行并且又返回值,但是在DBGrid上显示不出来!
showmessage某一个字段也是为空!
请大虾们帮帮我!

注:我在TClientDataSet的FieldDefs对要显示的字段进行了设置(因为并不是要把所有的字段
都显示出来),并且我都把他们添加成“永久字段”。
...全文
157 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingice 2001-12-06
  • 打赏
  • 举报
回复
EHLIB不是免费的!你那有破解的吗?给我一份好吗?
我的E-Mail: lingcn@sina.com
halfdream 2001-12-04
  • 打赏
  • 举报
回复
我这样用过运行得很好啊,
到底系统报的是哪类错误?
请说详细些.
di2000 2001-12-04
  • 打赏
  • 举报
回复
sunyanbin(太阳)
我怎么没有发现呢?
能说说怎么作吗
sunyanbin 2001-12-04
  • 打赏
  • 举报
回复
不用第三方控件好象没有别的好办法,
我还是推荐EHLIB,它支持多层表头。
lingice 2001-12-04
  • 打赏
  • 举报
回复
不一定是双表头,还有可能是3、4表头.
lingice 2001-12-04
  • 打赏
  • 举报
回复
用TClientDataSet + TDBGrid也可以实现,就是很麻烦!
除了用第三方控件还有别的办法吗?
sunyanbin 2001-12-03
  • 打赏
  • 举报
回复
是双表头
你可以用支持双表头的GRID构件,比如EHLIB
lingice 2001-12-03
  • 打赏
  • 举报
回复
所谓复杂也就是给字段(不一定是同一张表里的)进行“分组”。比如说,
----------------------
| 收入 | 支出 |
----------------------
|笔数|金额| 笔数| 金额 |
| | | | |

可能表述的不好!意思差不多!
lingice 2001-12-03
  • 打赏
  • 举报
回复
但是在TQuery中没有FieldDefs呀!
有些时候我需要从许多表中取数据,要是用TTable的话就有FieldDefs属性了!
其实我也是一点也不想用TClientDataSet的!想我这种情况有什么别的解决方法?
sunyanbin 2001-12-03
  • 打赏
  • 举报
回复
多复杂能详细点吗?
用QRERY不行吗?
lingice 2001-12-03
  • 打赏
  • 举报
回复
怎样设置DatSetProvider的DataSet属性,才能给ClientDataSet提供数据?
谢谢!
taxi 2001-12-03
  • 打赏
  • 举报
回复
非常复杂的title,用字段编辑器。
lingice 2001-12-03
  • 打赏
  • 举报
回复
我之所以用TClientDataSet是因为在TDBGrid中我要作处一个非常复杂的Title!
除了用这个还有别的方法吗?请大家指点!
谢谢!
sunyanbin 2001-12-03
  • 打赏
  • 举报
回复
为啥用TClientDataSet??
踢踏 2001-12-03
  • 打赏
  • 举报
回复
建议:既然是两层数据库,没必要放TDataSetProvider
踢踏 2001-12-03
  • 打赏
  • 举报
回复
open返回的是一个数据集,execute不返回一个数据集,所以你执行到那儿就出错了。
vmao 2001-12-03
  • 打赏
  • 举报
回复
因为你的服务器端不允许串动态的sql语句呀!
把服务端的provider的option的opallowcommandtext设为true;
taxi 2001-12-03
  • 打赏
  • 举报
回复
哎呀,访问access还用clientdataset、datasetprovider,用ado不是很好吗?
DatSetProvider的DataSet属必没有设,怎么给ClientDataSet提供数据,不要把DataSetProvider中的AllowCommand设为true,在Option属性中。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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