我是一个初学者,我现在有个问题是:
ADOQuery1.SQL.Add('selectP_Arrange.ProductID,P_Product.Prodname,P_Product.prodspec,P_Arrange.batchno,P_Product.ProdColor,from p_product,P_Arrange');
ADOQuery1.SQL.Add('where P_Arrange.productID = P_product.productid);
ADOQuery1.Open;
我在打开时需要检索以上的数据,我现在还需要能够在DBGrid中实现增加功能,但是我不需要修改P_Product表,这个表只时一个引用表我该如何做,其他方法也可以,谢谢帮忙

解决方案 »

  1.   

    静态字段。在dbgrid里不要显示不想编辑的表的字段。
      

  2.   

    在adoquery1的beforepost事件中自己写代码来进行处理
      

  3.   

    构建一个临时表
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('insert into #temp select P_Arrange.ProductID,P_Product.Prodname,P_Product.prodspec,P_Arrange.batchno,P_Product.ProdColor,from p_product,P_Arrange'from p_product,P_Arrange ');
      sql.add('select * from #temp');  //#temp是个临时表
      execsql;
    end;以后对临时表进行操作。例增加
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('insert into #temp values(......)' );//这里不完善,只是示范
      execsql;
    end;当你断开与数据库连接时,临时表会自动删除。
      

  4.   

    我如何用updatesql用才能实现呢