도와주세요.
ADOConnection을 이용하여 오라클 9i에 연결하는데 자꾸 실패합니다.
당장 낼까지 해결해야 하는데 급한 마음에 여기 저기(델파이사이트,오라클사이트) 알아봤는데도 시원한 해결책이 없네요.
개발 PC상에선 프로그램과 오라클의 연결이 잘되는데 이상하게 설치될 PC는 연결이 안됩니다.
먼저 설치될 PC에 오라클 클라이언트(9i)을 설치하여 sql*plus로 연결 테스트하니 잘 됩니다.
참고) tnsnames.ora
AAA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = AAA)
)
)
그리고 ODBC로 사용자 DNS,시스템 DNS를 만들어 연결 테스트한 결과도 잘됩니다.
참고) 사용자 DNS
Data Source Name = AAA
TNS Service Name = AAA
User ID = bbb
그런데 같은 PC상의 프로그램에서 ADO로 오라클을 연결하면 자꾸 에러가 발생합니다.
참고) 소스 <--- MainFormCreate시 호출되는 함수입니다.
function 함수
var
s: string;
begin
ADOConnection := ADOConnection.Create(Self);
s := 'Provider=OraOLEDB.Oracle.1;Password=ccc;Persist Security Info=True;' +
'User ID=bbb;Data Source=AAA';
ADOConnection.ConnectionString := s;
ADOConnection.LoginPrompt := False;
if ADOConnection.Connected then
begin
// Error 표시
Result := False;
Exit;
end;
try
ADOConnection.Connected := True;
except
on E: Exception do
begin
// Error 표시
Result := False;
Exit;
end;
end;
Result := True;
end;
이 함수의 반환값이 false로 떨어지면서 오라클에 연결 할 수 없습니다.
이 함수 다음에 sql로 select하면 exception가 떨어지면서 다음과 같은 에러메시지를 발생합니다.
ORA-12154 TNS : 서비스명이 해석할 수 없습니다.
해결책 좀 주세요. 부탁드립니다. 꾸벅~
먼저 새롭게 프로젝트를 만들어 ADO 커넥션만 코딩하여 연결하니 되는군요.
그런데 희한하게 FormCreate에서는 연결이 안되고 버튼클릭에서만 연결이 되네여.
그래서 버튼클릭을 새로 만들어 기존프로젝트에 붙여 테스트할땐 다시 안되고...이유를 모르겠네여
결국 ADO 커넥션을 먼저 연결한 다음 다시 하나 하나 기능을 추가해서 새롭게 만들었습니다.
이것때문에 납품일정에 3일이나 더 소요되고...
모두 즐프하세요.