我用MIDAS做三层结构,在AP层上写了批处理程式,如何debug,十万火急,在线等待,
高手指点。

解决方案 »

  1.   

    你是进程内应用程序服务器吧.有个叫INTERAB可以.
    COM+就方便DEBUG了
      

  2.   

    是,两个 delphi, 一个server, 一个client , 两边都可以设断点
      

  3.   

    请教两位: lzf1010(深宇) , comanche(太可怕) 可否说详细点?
    我用DCOM连接,开两个delphi
     在client 端写
    function LoginCheck:boolean;
    //var l_passwd:string;
    var retValue:variant;
    begin
      with Tfrm_login.Create(Application) do
      begin
        if ShowModal = mrOK then
        begin
          g_user := UserName.Text ;
          result := DM_cs.Dcon_cs.AppServer.VerifyPasswd(Username.Text,PassWord.Text );          //设置断点
        end;
      end;
    end;在应用层写有
    function TCsserver.VerifyPasswd(const UserName,
      PassWord: WideString): OleVariant;
    begin
      with Qry_tmp do
      begin
        sql.Clear ;                            //设置断点
        sql.Add('select count(*) as cnt from zx_file where zx01 = '''+Username+''' ');
        sql.Add(' and zx09 = '''+PassWord+''' ');
        open;
        result := FieldByName('cnt').AsInteger > 0;
      end;
    end;我run client ,在上面停下后,按F7,F8直接运行了AP server,AP程式根本 
    停不下来
      

  4.   

    应该先运行AP,设置断点后才运行client
      

  5.   

    EXE方式(DCOM)的AP没法调试,所以我都是做成DLL方式,用SOCKET或COM+即可按一般调试DLL的方式调试了.
      

  6.   

    exe 也可以,在delphi下先运行 ap
      

  7.   

    再次强调,要先用 delphi 运行 ap!!!
      

  8.   

    DLL方式也很难说,我设置应用服务器DLL的Host Application为客户EXE后,开始是经常可以断点调试的(有时不行),现在是完全无法断点调试了;而且我记得以前我即使直接Run客户EXE有时都可跟踪到应用服务器代码。我觉得delphi 的稳定性很可疑。
      

  9.   

    我用socket连接一直都可以跟踪的
      

  10.   

    Debugger Options 中 Enable COM cross-process support
    这样试一下
      

  11.   

    没有问题,MIDAS的Server,DLL都可以设置断点的
    设置MIDAS的Server时:
    1. 先要打开两个Delphi,一个调试Server,一个调试CLient;
    2. 然后先在Server端设置好断点,并运行,此时应用服务器的EXE已经显示出来,但你要调用的方法中设置的断点还没有激活。
    3. 再运行客户端程序,调用远程方法,服务器端的断点就应该激活了
    4. 注意,调试的服务器程序应当先运行,客户端才不会自动激活服务器的EXE程序…