SimpleDataSet1命名为sdtvar
td: TTransactionDesc;//要uses下DBXPress
p:string;
begin
  td.TransactionID:=1;
  td.IsolationLevel:=xilREADCOMMITTED;
  dm.SQLConnection1.StartTransaction(td);
          p:='update renysrk set in_num=:in_num,place=:place,ps=:ps where incard_no=:incard_no';
          dm.sdt.Active:=false;
          dm.sdt.DataSet.CommandText:=p;
          dm.sdt.DataSet.Params.ParamByName('in_num').value := edit6.Text;
          dm.sdt.DataSet.Params.parambyname('place').value := edit9.Text;
          dm.sdt.DataSet.Params.parambyname('ps').value := edit10.Text;
          dm.sdt.DataSet.Params.parambyname('incard_no').value := k;
          dm.sdt.Execute;
          dm.SQLConnection1.Commit(td);
...
end
报'missing data provider or data packet'错.求高人指点.

解决方案 »

  1.   

    我一直用ADO的procedure   TForm1.Button1Click(Sender:   TObject);  
      begin  
      ADOConnection1.begintrans;     //事务开始  
      try  
      adoquery2.Close;  
      adoquery2.SQL.Clear;  
      adoquery2.SQL.Add('insert   biao2(b1,b2,b3)   values(''5'',''5'',5)');  
      adoquery2.ExecSQL;  
       
      adoquery2.Close;  
      adoquery2.SQL.Clear;  
      adoquery2.SQL.Add('insert   biao1(b1,b3)   values(''5'',5)');  
      adoquery2.ExecSQL;  
      ADOConnection1.committrans;       //事务提交  
      MessageBox(handle,'chegn','提示信息框',MB_OK);  
      except  
      MessageBox(handle,'提示信息框','提示信息框',MB_OK);  
      ADOConnection1.rollbacktrans;             //事务回滚  
      end;
    end;
      

  2.   

    dm.sdt这个应该有个属性ProviderName,你设置了没有?
      

  3.   

    ProviderName在哪里??,我没找到,请说详细点.