我前一阵子看了一下子COM/DCOM方面的东西,有哪位有这方面的源码可供参考,一定给分,不够再开贴加!要是能说一下它们的主要用处以实例也行!

解决方案 »

  1.   

    以下是在COM中实现的方法。你可以参考一下
    {返回数据集}
    function Tmycom.query(const sqlstr, tablename: WideString): WideString;
    var i:integer;
    begin
      result:='';
       with dm.ADOQ do
       begin
         if active then
           active:= false;     sql.Clear ;
         sql.Add('select * from '+TableName+' where '+sqlstr);
         open;     First;  //
         while not Eof do
         begin
            result:=result+fieldbyname('id').AsString   +sSperField+fieldbyname('dictcode').AsString
                    +sSperField+fieldbyname('dictname').AsString+sSperField+fieldbyname('dictclass').AsString
                    +sSperField+fieldbyname('chndictclass').AsString+sSperLine;
            Next;  //
         end;
       end;
    end;
    function Tmycom.IsExist(const sqlstr, tablename: WideString): SYSINT;
    begin
      with dm.ADOQ do
        begin
          sql.Clear ;
          sql.Add('select * from '+tablename+' where '+sqlstr);
          execsql;
          active:=true;
        end;
        if dm.ADOQ.RecordCount<>0 then
          result:=1
        else
          result:=0;
    end;initialization
      TTypedComObjectFactory.Create(ComServer, Tmycom, Class_mycom,
        ciMultiInstance, tmApartment);
    end.
      

  2.   

    com: new->Active Library->new->active server object。
    然后添加一个过程:
    procedure TAspObj1.WriteCap(var Cap: OleVariant);
    begin
     Cap:='I am Chordy';
    end;
    调用:
    procedure TForm2.Button1Click(Sender: TObject);
    var aspobj:IAspObj1;aa:OleVariant;
    begin
      aspobj:=coAspObj1.Create;
      aspobj.WriteCap(aa);
      button1.caption:=aa;
    end;