小第以前没用过Delphi,现在公司做一个3层MIS,客户端用Delphi6开发,由于公司有一个自己的开发平台软件,在Delphi中用了很多自己的控件,比如数据连接控件,我现在遇到一个问题:在一个Form中,有一个DataSource、一个ClientDataSet、一个DataGrid和数个DbEdit控件,因为数据连接控件公司开发时统一规定用自己开发的,那套东西比较怪,我现在对它的用途也不怎么明白,只知道照例子改,只知道它实际的所有用到的很数据库打交道的东西都在中间层完成,Delphi层只是负责收集传送一些数据参数,所以我在对ClientDataSet设置初始态时不能将它的active设为true,也不能对DbEdit指定DataSource及其DataSetField等,这些都要放在Form生成时程序完成,如当Form Onshow时就调用下面这个方法:procedure tfm_my_editor.GetObjInfo(Sender: TObject);
begin
  my_comp.Execute;//my_comp是公司的控件
  //...其它相关处理
  my_cds.Active := true;//my_cds是在这个Form里用到的ClientDataSet,在这里将它激活
  {
    在这里我要设置那几个DbEdit和DataSource的相应字段绑定,如DbEdit_Name和其中的ds_Name绑定
    这里的DataSource的DataSet项是my_cds(ClientDataSet)
    请问我这里应该怎么写?
  }
end;小第是刚接触Delphi的,现在的公司又用了大量自己开发的控件,学起来蛮吃力的,请大家帮忙,谢谢!

解决方案 »

  1.   

    设置DataSource和FieldName两个属性就够了
      

  2.   

    TO:bee2518(迷茫ing) 
    DataSource可以设置的,FieldName?DbEdit有这个属性吗?没找到啊
      

  3.   

    如果是ClientDataSet肯定有DCOMConnection或SockectConnection作为与中间层的数据连接器,没有这两个控件ClientDataSet的Active属性是不可能激活的。 首先启动中间层(逻辑层服务器),然后连接DCOMConnection或SockectConnection,接下来连接ClientDataSet到DCOMConnection或SockectConnection上,选择数据表或查询,然后连接DataSource到ClientDataSet,最后连接DbEdit到DataSource,并指定字段。
      

  4.   

    TO:neo40(企鹅)
    我的ClientDataSet在程序里已经激活了,你说的那些数据连接控件我没用到,不过我想我用的那些公司自己开发的控件应该把这些都处理好了。
    的DataSource已连到ClientDataSet,DbEdit连接到DataSource也可以,指定字段是指设置其中的DataSetField项吗?
      

  5.   

    可问题是datafield没发直接在属性里选择设置的,原因是我上面说的,因为我的数据连接是在Form初始化时激发完成的,在平时设计界面和属性的时候数据源没连上,datafield那项直接设不了的,所以我才请教在程序里怎么写啊,请再看一下我的问题(我要的是在程序里的实现,就是写语句实现):procedure tfm_my_editor.GetObjInfo(Sender: TObject);
    begin
      my_comp.Execute;//my_comp是公司的控件
      //...其它相关处理
      my_cds.Active := true;//my_cds是在这个Form里用到的ClientDataSet,在这里将它激活
      {
        在这里我要设置那几个DbEdit和DataSource的相应字段绑定,如DbEdit_Name和其中的ds_Name绑定
        这里的DataSource的DataSet项是my_cds(ClientDataSet)
        请问我这里应该怎么写?
      }
    end;
      

  6.   

    刚才又调了下,自己解决了:
      dbEdit_Name.DataField := 'ds_Name';//在上面程序段中加这一句就可以了