我在远程数据模块Dmmain中定义一个Database(db),在另一个公共单元中引用该Database,如下所示,可远程模块中一调用Tlogin.getinfo便出错,不知如何解决,无法继续。
procedure Tlogin.GetInfo;
var
  qr: TQuery;
begin
  qr := TQuery.Create(nil);
  try
    qr.DatabaseName := DMMain.DB.DatabaseName;
    qr.SQL.Clear;
    qr.SQL.Add('select a.DUTY_OFFICE_CODE,a.DUTY_OFFICE_NAME,');
    qr.SQL.Add('a.duty_abbr,');
    qr.SQL.Add('a.PARENT_CODE,a.DUTY_OFFICE_TEL,a.GRADE,');
    qr.SQL.Add('nvl(a.IF_DIRECTLY_UNDER,''0'') IF_DIRECTLY_UNDER,a.AREA_FLAG, ');
    qr.SQL.Add('a.DUTY_OFFICE_ADDR,b.DEPT_CODE,b.DEPT_NAME,');
    qr.SQL.Add('b.DEPT_KIND,b.REMARK dREMARK,');
    qr.SQL.add('b.dept_abbr,');
    qr.SQL.Add('c.STAFF_CODE,c.STAFF_NAME,c.GENDER,c.IDCD_NUM,');
    qr.SQL.Add('c.ADDR,c.TEL,c.JOB_TIME,c.STS,c.STS_TIME,');
    qr.SQL.Add('c.REMARK sREMARK,a.AREA_TYPE ');
    qr.SQL.Add('from Area_Code a,Work_Area b,Staff_member c');
    qr.SQL.Add('where c.DUTY_OFFICE_CODE=:code1');
    qr.SQL.Add('and c.Staff_Code=:code2');
    qr.SQL.Add('and a.DUTY_OFFICE_CODE=c.DUTY_OFFICE_CODE');
    qr.SQL.Add('and b.DUTY_OFFICE_CODE=c.DUTY_OFFICE_CODE');
    qr.SQL.Add('and b.DEPT_CODE=c.DEPT_CODE');
    qr.ParamByName('code1').AsString := Me.DUTY_OFFICE_CODE;
    qr.ParamByName('code2').AsString := LoginCode;
    qr.Prepare;
    qr.Open;
    if qr.IsEmpty then Exception.Create('该员工不存在');
    //单位信息
    DUTY_OFFICE_CODE := qr.FieldByName('DUTY_OFFICE_CODE').AsString;
    DUTY_OFFICE_NAME := qr.FieldByName('DUTY_OFFICE_NAME').AsString;
    PARENT_CODE := qr.FieldByName('PARENT_CODE').AsString;
    DUTY_OFFICE_TEL := qr.FieldByName('DUTY_OFFICE_TEL').AsString;
    DUTY_OFFICE_ADDR := qr.FieldByName('DUTY_OFFICE_ADDR').AsString;
    GRADE := qr.FieldByName('GRADE').AsString;
    //部门信息
    DEPT_CODE := qr.FieldByName('DEPT_CODE').AsString;
    DEPT_NAME := qr.FieldByName('DEPT_NAME').AsString;
    //员工信息
    STAFF_CODE := qr.FieldByName('STAFF_CODE').AsString;
    STAFF_NAME := qr.FieldByName('STAFF_NAME').AsString;
    TEL := qr.FieldByName('TEL').AsString;
  finally
    qr.Free;
  end;
end;