Q&A

  • OleVariant 형식..


midas 로 테스트를 구현햇느데 win2003 서버에서 계속 엑세스거부가 나오고
다들 바쁘신지 델피언님들의 답변도 없어서 포기하고 이번엔 리모트dm을 썼습니다.

//서버쪽 소스
function TEZTESTS.GETDATAS1(const Param1: WideString): OleVariant;
var
     V_CODENM : Variant;
     i : Integer;
begin
          with Query1 do
          begin
               Close;
               Open;

               V_CODENM := VarArrayCreate([Query1.RecordCount], varVariant);
               V_CODENM[0] := inttostr( Query1.RecordCount );
              
               i := 0;
               while not eof do
               begin
                    Inc( i );
                    v_codenm[i] := FieldByName( 'ENTERNAME' ).AsString;
                    next;
               end;
          end;
          Result := V_CODENM;
end;

//클라이언트 소스
procedure TForm1.FormCreate(Sender: TObject);
begin
     OBJ_CoEZTests := CoEZTests.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
     OBJ_CoEZTests := nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
     v_result : Variant;
     i : integer;
     icnt : integer;
begin
//     TcpClient1.Disconnect;
//     TcpClient1.LocalHost := Edit1.TEXT;
//     TcpClient1.LocalPort  := EDIT2.TEXT;
//     TcpClient1.Connect;

           Memo1.Clear;
          v_result := OBJ_CoEZTests.GETDATAS1( Edit3.text + Edit6.text );
          if VarIsArray(v_result) then
          begin
               icnt := VarArrayHighBound(v_result,1);
          end;

           v_result := VarArrayCreate( [icnt-1], varVariant );
           v_Result := OBJ_CoEZTests.GETDATAS1( Edit3.text + Edit6.text );
           for i := 1 to icnt do
           begin
                memo1.lines.add( v_result[i] );
           end;
end;



서버 : 윈도우2003,

1. 서버 : 서비스어플 + 리모트데이타모듈 로 했고 서버 프로그램은 이상이 없는것 같습니다.
  클라이언트 소스에서 OleVariant 받는 방법이 잘못된거 같은데 에러메시지는
Error Creating Varint or Safe Array 입니다.
Memo1.Clear 다음 라인에서 납니다. ( v_result := OBJ_CoEZTests.GETDATAS1 .. 부분)

2. TCPClinet를 연결하지 않았는데 로컬에서 서버에 저 서비스프로그램을 어떻게 찾아가는지???
서비스프로그램엔 데이타베이스 + 쿼리컴퍼넌트만 있습니다.

3. form create의  OBJ_CoEZTests := CoEZTests.Create; 만 실행되면
    약 15초 후에 첨부한 에러메시지가 뜹니다.
그후 버튼1을 클릭하면 RPC 서버를 사용할수 없다고 나오며 더 이상 서로 연동이 안됩니다.
답변좀 부탁합니다.
0  COMMENTS