如何动态创建ClientDataSet的Param?
在线!

解决方案 »

  1.   

    现在以删除为例子:如果使用D5的话,可以直接使用
      ClientDataSet.CommandText ;='delete table where name='''+edit1.text+'''';
    另外删除动作可以在任何一层,无论是ClientDataSet或者应用程序服务器中,其实,说
    到底,clientDataset发生的SQL语句也是通过服务器来完成的,而且,相对来说,简单的
    SQL语句使用ClientDataset来得更有效率。
    你完全可以在应用程序服务器中的数据库控件
    (如TQuery的SQL)中书写SQL 语句,(delete table where name=:name),而在客户端使用:
      ClientDataset.FetchParams;
      ClientDataSet.Params.ParamByName('name').AsString := Edit1.Text;
      ClientDataSet.Execute;即可
      

  2.   

    谢谢!我用以下办法: 
    DataModule3.ClientDataSet1.Params.CreateParam(ftUnknown,'s',ptUnknown).AsString:=Edit1.Text;
     DataModule3.ClientDataSet1.CommandText:='Select * from BTSprocess Where BTS_name=:s';
    结果,在查询一次可以,但再查询就出现错误:
    “多步OLE DB操作产生错误。请检查每个OLE DB状态值。没有工作被完成。”不知道是什么意思?