有没有调用applyupdate(-1)?
sql语句可以动态指定。datasetprovider的allowcommandtext设置为true

解决方案 »

  1.   

    怎样调用阿applyupdates(-1),那是调用的ClientDataSet方法是吗,写在哪儿呢,写在DCOMCONNECTION 和CLIENTDATASET组成的com+元件的UpdatesData方法里是吧?
      

  2.   

    把你的更新对象贴出来。这是更新对象,你试试下面的,看看可以不可以
    procedure TmtsUpdateObj.UpdateData(vData: OleVariant; iMaxError: Integer;
      var iErrorCount: Integer);
    Var
      ServerObj: IAppServer;
      OwnerData: OleVariant; 
    begin
      try
        ServerObj := myDM.DCOMConnection1.GetServer;
        ServerObj.AS_ApplyUpdates('dspData', vData, iMaxError,
          iErrorCount, OwnerData);
        SetComplete;
      except
        SetAbort;
      end;      
    end;
      

  3.   

    我试过呀,早就试过,我还在前面加不一句,dcomconnection.connected:=true;
    用来启动mts/com+元件,还是不行,
    我在前端的写入是这们写的,
    procedure TForm1.Save_btnclick(Sender:Object);
    var vQoor:ImtsBookObj;
        vDatas:OleVariant;
    begin
      vDatas:=ClientDataSet1.Delta;
      vQoor:=ComtsBookObj.CreateRemote('weilt');//我的电脑名称是weilt
      vQoor.UpdateData(vDatas,0,iErrorCount);
    end;
      

  4.   

    更新完数据,用ClientDataSet.ApplyUpdates(-1);提交
      

  5.   

    我是原代码在这儿了,帮我看看吧,
    后台与数据库连接的,
    adoconn:TADOConnection;
    Qry:TADOQuery;
    Provider1:TDataSetProvider;//provider的Resolve属性设为true;
    procedure TmtsBookObj.initlize;
    begin
    inherrited;
    AdoConn.conncted:=true;
    Qry.SQL.Clear;
    Qry.SQl.Add('select * from book');
    Qry.connection:=AdoConn;
    Qry.Active:=True;
    end;中间的mts/com+,用DComconnection和ClientDataSet,
    可以下确取得数据,写回的方法是这们写的,
    procedure TmtsREBOOKObj.Updates(vDatas:OleVariant,iMaxErrors:integer;iErrorCount:integer);
    var ServerObj:IAppServer;
        OwnerData:OleVariant;
    begin
       try
         FMyDM.DCom.connected:=True;
          try
           ServerObj:=FMyDM.DCom.GetServer;
           ServerObj.as_ApplyUpdates('provider1',vDatas,iMaxErrors,iErrorCount,OwnerData);
           SetComplete;
          except
           SetAbort;
        finally
       FMyDM.DCom.Connected:=False;
       end;
      end;
    end;
    前端程序已经写在上面了,有发现问题的吗?