多个窗体中ClientDataSet.ProviderName使用同一个提供者,如果这多个窗体同时打开那么进行ApplyUpdates(0)保存的时候就会出错或者保存不成功,如果每个窗体都建一个提供者的话就太多了,请问有什么好的解决办法

解决方案 »

  1.   

    来自:李颖, 时间:2000-4-23 18:34:00, ID:228922
    adminis,数据提交的问题已解决,
    我是这么干的:
      在ClientDataSet.BeforeApplyUpdates中传入SQL语句
      在Provider.BeforeApplyUpdates中将得到的SQL语句赋值给TQuery.SQL.Text
    程序如下:
    Client端:
      procedure xxxx.ClientDataSetBeforeApplyUpdates(Sender: TObject; var OwnerData: OleVariant);
      begin
        with Sender as TClientDataSet do
          OwnerData := CommandText;
      end;Server端:
      procedure xxxx.ProviderBeforeApplyUpdates(Sender: TObject;
        var OwnerData: OleVariant);
      begin
        qrDataProvider.SQL.Text := OwnerData;
      end;参见:
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=226555
      

  2.   

    非常感谢
     ysai(所有真的都是假的真,所有假的都是真的假)