两个办法:
1、用ComponentCount和Components找出名字为'ds_client'的数据原然后赋值
2、不要用字符串保存,而直接用TDataSource
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '可用分不够可以给我发短消息';
I.Desire := '加不加分随你';
—————————————————————————————————
    

解决方案 »

  1.   

    ds_client为Tdatasource吧那你就这样
    var
    ds:tdatasource;
    begin
     ds := ds_client;
     dbgrid1.DataSource := ds;
    end;//这样只占四个字节的内存空间ds是一个指针
      

  2.   

    我要把它保存在数据库里,只能是字符型啊而datasource是从数据库里调出来的
      

  3.   

    那就这样
    var
      ds:TComponent;
    begin
     ds :=  FindComponent('ds_client');
     if (ds <> nil)and(ds is Tdatasource) then
     dbgrid1.DataSource := TDataSource(ds);
    end;
      

  4.   

    在一个字符串变量ds中保存了数据源的名字ds_client ds := 'ds_client'; dbgrid1.DataSource := ds; 错误信息为: Incompatible types: 'TDataSource' and 'String'
    你可以这样
    dbgrid1.datasource:=Tdatasource(ds)
      

  5.   

    To: netlib(河外孤星)     已解决,谢谢您    马上给分