안녕하세요!
Server Name, User Name, Password 값을 상수로 받아서
Database 컴포넌트의 params 리스트에 추가한 후 Oracle로
연결하려고 합니다.
const
set_servername = 'a';
set_username = 'b';
set_password = 'c';
procedure TDatabase1.Database1Create(Sender: TObject);
begin
Database1.Params.Add('SERVER NAME=set_servername');
Database1.Params.Add('USER NAME=set_username');
Database1.Params.Add('PASSWORD=set_password');
Database1.Connected := True;
end;
위와 같이 하였더니
-----------------------------------------------------------------
Project BOM.exe raised exception class EDBEngineError with message
'Unknown network error.
ORA-12154: TNS:could not resolve service name
Alias: *. Process stopped. Use Step or Run to continue.
-----------------------------------------------------------------
이런 에러 메세지가 발생했습니다.
해결 방법을 아시는 분은 답변 부탁드립니다.
행복한 하루 되세요.
문영미 올림.
> 안녕하세요!
>
> Server Name, User Name, Password 값을 상수로 받아서
> Database 컴포넌트의 params 리스트에 추가한 후 Oracle로
> 연결하려고 합니다.
>
>
> const
> set_servername = 'a';
> set_username = 'b';
> set_password = 'c';
>
>
> procedure TDatabase1.Database1Create(Sender: TObject);
> begin
> Database1.Params.Add('SERVER NAME=set_servername');
> Database1.Params.Add('USER NAME=set_username');
> Database1.Params.Add('PASSWORD=set_password');
>
> Database1.Connected := True;
> end;
>
> 위와 같이 하였더니
>
> -----------------------------------------------------------------
> Project BOM.exe raised exception class EDBEngineError with message
> 'Unknown network error.
> ORA-12154: TNS:could not resolve service name
> Alias: *. Process stopped. Use Step or Run to continue.
> -----------------------------------------------------------------
> 이런 에러 메세지가 발생했습니다.
>
> 해결 방법을 아시는 분은 답변 부탁드립니다.
> 행복한 하루 되세요.
> 문영미 올림.
아래와 같이 해야되지 않을까요
Database1.Params.Add('SERVER NAME='+set_servername);
Database1.Params.Add('USER NAME='+set_username);
Database1.Params.Add('PASSWORD='+set_password);
그리고 ORACLE 이라면 TDataBase에 넣어야할 파라미타가 많을 겁니다
SERVER NAME, USER NAME, PASSWORD 말고도 여러개 있습니다
모든 파라미터들은 기본값으로 미리 TDataBase에 넣어둔 상태에서
아래처럼 필요한 부분만 바꿔치기 하시는것이 좋지 않을까요
for i := 0 to Database1.Params.Count-1 do
begin
if System.Pos('SERVER NAME',Database1.Params[i]) > 0 then
Database1.Params[i] := 'SERVER NAME='+set_servername;
if System.Pos('USER NAME',Database1.Params[i]) > 0 then
Database1.Params[i] := 'USER NAME='+set_username;
if System.Pos('PASSWORD',Database1.Params[i]) > 0 then
Database1.Params[i] := 'PASSWORD='+set_password;
end;
Database1.Connected := True;