首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

三层 主从表数据录入有关问题 ?

2012-03-20 
三层 主从表数据录入问题 ??用的是delphi2010方法是:服务器端:1、 连接数据库2、放置ADODataSet,假设命名为A

三层 主从表数据录入问题 ??
用的是delphi2010方法是:

服务器端:
1、 连接数据库 
2、放置ADODataSet,假设命名为ADSMaster,主表
  Sql=select * from inhead where 1=2 
3、放置DataSouce,DataSet设为ADSMaster; 
4、放置另外一个ADODataset,假设命名为ADSDetail,从表,设置DataSouce为刚才主表的Datasource,
  这样在从表与主表建立连接关系, 然后在MasterFields 的Field Link Designer主表从表关联的字段 
  Sql=select * from inhouse where 1=2
 5、放置DataSetProvider,DataSet连接ADSMaster 
 

客户端:  
1、 建立的服务器连接  
2、放置两个DataSouce、两个ClientDataSet,其中一个连接到服务器 (ADSMaster) 的DatatSetProvider,将所有字段 加入到Fields Editor中,将看到有一个ADSDetail的字段  
3、在另外一个ClientDataSet中的DataSetField中加入ADSDetail,大致 是这样的字样ClientDataSet1ADSDetail  
4 新增按钮事件
  begin
  ADSMaster.close;
  ADSMaster.open;
  ADSMaster.append;
  ADSDetail.close;
  ADSDetail.open;
  ADSDetail.append;
  Adsspbm.close;
  Adsspbm.open;
  end;

  执行新增时就出错 提示 stack overflow ; 我这样两层结构是可以的 请问三层应怎么设置呢?? 谢谢!!

[解决办法]
帮你顶顶帖子
可能是 连接数据库的字符串 有问题吧
[解决办法]
数据录入还是采用B/S结构中的录入方式吧,即:用Insert-SQL 命令来完成数据录入,其优点是无需像Dataset那样将部分或全部数据传送到前端。
[解决办法]
从表的ADODataset里面的SQL语句必须传一个参数进去,必须为主表的一个外键或者主键
[解决办法]
客户端不能直接操作服务器中的ADSMaster,而是通过ClientDataSet读写数据。
[解决办法]
1.Clientdataset是否open 
2.Append语句都改为ClientDataSet.Append,在客户端执行
[解决办法]
主从表 从表 不能直接 使用类似 adoquery.insert 因为是从表......所以乃还是用sql 插入吧

热点排行