小弟在做一个小型的系统,其中有二个表。
t_item (物料表) ID,FNumber,FUnitID 三个字段。
ID为自动编号,FNumber 为物料代码,FUnitID 为物料计量单位的内码。t_Unit (计量单位表) ID,FName 二个字段。
ID为自动编号,与t_item 表中的 FUnitID 对应。FName 为计量单位的名称。在一个Form中放入一个 AdoDataset (Dset1),一个 Datasource (ds1),一个 cxGrid 。AdoDataset 通过 Adoconnection 连 sqlserver。
adodataset.commandtext='select t1.ID,t1.FNumber,t1.FUnitID,t2.FName from t_item t1 left join t_unit t2 on t1.FUnitID=t2.ID',并设置为 active:=true;AdoDataset 中共有4个字段。ID,FNumber,FUnitID,FName 。
因为客户要做成弹出式的选择。所以有一个赋值的过程:Dset1.fieldbyname('FUnitID').asinteger:=1;
Dset1.fieldbyname('FName').asString:='Kg';Dset1.post 的时候 t_Unit被更新了, 我不想 t_Unit表被更新。如何作业?
我使用的是二层结构。谢谢各位! 

解决方案 »

  1.   

    那取出来后,符合条件的放到个临时的dataset里,
    然后重新带条件select t_item表后再赋值
      

  2.   

    To dd_zhouqian 您好,您可否说的详细一些,小弟肯请您的帮助,谢谢。
      

  3.   

    adodataset.commandtext='select t1.ID,t1.FNumber,t1.FUnitID,t2.FName from t_item t1 left join t_unit t2 on t1.FUnitID=t2.ID'这种做法是在视图上操作,当然会t_Unit表被更新,应该:
    adodataset.commandtext='select × from t_item';然后,用添加LOOKUP字段,显示t_unit里的内容
      

  4.   

    To huangheguyun 您好,如何做临时表呢? 我是想做一个通用的处理,所以建 LOOKUP 字段是最后的选择。谢谢!
      

  5.   

    不好意思。 小弟用 dxmemdata 解决了。 谢谢大家的帮助!