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 서버를 사용할수 없다고 나오며 더 이상 서로 연동이 안됩니다.
답변좀 부탁합니다.