使用COMMANTEXT不能CLIENTDATESET中的内容

Ray 2000-01-24 10:47:00
当我使用CLIENTDATASET的COMMANDTEXT属性改变CLIENTDATASET的表名并向该表添加数据时,CLIENTDATASET会顺利执行。但数据库中的内容一点也没有改变。请问是否使用COMMANDTEXT改变表名时只能对数据进行浏览而不能进行插入或更新?(在中介服务器
我已把ALLOWCOMMANDTEXT设为TRUE)。
程序如下:
ClientDataSet1.Close;
ClietnDataSet1.Close;
ClientDataSet1.CommandText:=表名1;
ClientDataSet2.CommandText:=表名1;
ClientDataSet1.Open;
ClientDataSet2.Open;
while not ClientDataSet1.Eof do
begin
ClientDataSet2.Append;
for i:=0 to ClientDataSet1.FieldDefs.Count-1 do
ClientDataSet2.FieldValues[ClientDataSet2.Fields[i].FieldsName]
:=ClientDataSet1.FieldValues[ClientDataSet1.Fields[i].FieldsName];
ClientDataSet2.Post;
ClientDataSet2.ApplyUpdates(-1);
ClientDataSet1.Next;
end;
该程序执行完数据库中的“表名1”中的数据一点都没有增加介程序又没有出错
...全文
142 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahfei 2000-01-25
  • 打赏
  • 举报
回复
该程序执行完数据库中的“表名1”中的数据一点都没有增加介程序又没有出错
while not ClientDataSet1.Eof do
begin
ClientDataSet2.Append;
for i:=0 to ClientDataSet1.FieldDefs.Count-1 do
ClientDataSet2.FieldValues[ClientDataSet2.Fields[i].FieldsName]
:=ClientDataSet1.FieldValues[ClientDataSet1.Fields[i].FieldsName];
ClientDataSet2.Post;
ClientDataSet2.ApplyUpdates(-1);
ClientDataSet1.Next;
end;
>>有可能你这段循环程序根本没有执行,你看看是不是ClientDataSet1.Eof本来就为true?
Ray 2000-01-25
  • 打赏
  • 举报
回复
ClientDataSet1是连接ACCESS2000,ClientDataSet2是连接SQLSERVER7,时程序运行结束后SQLSERVER7中的表中根本没有数据增加,而奇怪的是将ClientDataSet1 和ClietnDataSet2交换(ClinetDatSet1--SQLServer7,ClientDataSet2--ACCESS200)又能正确地运行。
Venne 2000-01-24
  • 打赏
  • 举报
回复
试一下用SQL选择数据而不是更换表名来选择数据。
给CommandTEXT一个检索数据的完全的SQL语句。

5,386

社区成员

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

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