首先看应用服务器中TDatasetProvider是否拥许clientdataset直接使用sql,那个属性的名字我记不清了:-),再看clientdataset的FetchOnCommand是否为false

解决方案 »

  1.   

    我写了一个执行sql的函数:服务段:STDMETHODIMP TIDemoImpl::ExecSQL(BSTR sql)
    {
      AnsiString sql2;  try
      {
            m_DataModule->SQLQuery->Close();        sql2 = sql ;
            m_DataModule->SQLQuery->SQL->Clear();
            m_DataModule->SQLQuery->SQL->Add(sql2);
            m_DataModule->SQLQuery->ExecSQL();
    }
      catch(Exception &e)
      {
        return Error(e.Message.c_str(), IID_IDemo);
      }
      return S_OK;
    }客户端:AnsiString sql;sql = "insert into demo values('demo')";sctServer->AppServer.Exec(Function("ExecSQL")<<sql);
      

  2.   

    你可以看看help中关于这部分的说明,如果你的服务器是fullstate的,很简单,服务器端什么都不用写,客户端一句话就可以了:
    ClientDataSet1->ApplyUpdates();
      

  3.   

    Method 'ExecSQL'not supported by automation object,为什么?
      

  4.   

    为什么在win98下使用会出错, 而2000下没有问题,我跟踪监视发送的sql语句都是一样的,说什么char数据类型和日期数据类型转化有问题,但是两千下一模一样都没有问题,各位帮帮忙,我实在是不行了。