[devart unidac] oracle(오라클) 접속 방법

반응형
반응형
[유료]UniDAC ( Universal Data Access Components )  델파이 오라클 접근 접속 방법 

UniDAC ( Universal Data Access Components )란

 Community Edition 및 Windows, Linux, macOS, iOS 및 Android의 Lazarus (및 Free Pascal )를 포함하여  Delphi 및 C ++ Builder의 여러 데이터베이스에 직접 액세스 할 수있는 구성 요소 라이브러리입니다.

구매한 UniDAC 컴포넌트

 

 Delphi 10.3 오라클 DB 접속

 

오라클DB 접근 시 필요 항목

  • 델파이 소스
UniConnection1.ProviderName := 'Oracle';
UniConnection1.Server :=  '127.0.0.1:1521:TESTDB';

UniConnection1.Username := 'ID';
UniConnection1.Password := '패스워드';
UniConnection1.LoginPrompt := True;
UniConnection1.SpecificOptions.Add('Direct=True');

UniConnection1.Connected := True;    
ShowMessage(DataBase Connection Success!);
     

 

Delphi 10.3 오라클 DB Execute Query
if UniConnection1.Connected then //오라클 접속 여부 파악
begin
  sSQL :='INSERT INTO 테이블명 (필드1, 필드2) VALUES (''값1'', ''값2'',) ';
  UniQuery1.Close;
  UniQuery1.SQL.Text := sSQL;
  UniQuery1.ExecSQL;
end;

 

Delphi 10.3 오라클 DB 프로시저 호출
OraStoredProc1 := TUniStoredProc.Create(nil);
OraStoredProc1.Connection := Dm.UniConnection1;
OraStoredProc1.SpecificOptions.Values['FetchAll'] := 'True';  //DB 레코드 전체 

with  OraStoredProc1 do
begin
  Close;

  StoredProcName := '오라클 프로시저명';
  Params.Clear;
  Params.CreateParam(ftString, '프로시저 입력변수명1', ptInput).AsString := '입력변수1';
  Params.CreateParam(ftString, '프로시저 입력변수명2', ptInput).AsString := '입력변수2';
  Params.CreateParam(ftString, '프로시저 입력변수명3', ptInput).AsString := '입력변수3';

  Params.CreateParam(ftFloat, 'out변수명', ptOutput).Value; //프로시저 성공 =1 ,실패 -> 0
  Params.CreateParam(ftCursor, '출력_DATA', ptOutput).Value;
  Params.CreateParam(ftString, 'out_VALUE', ptOutput).Value;
  Execute;

  if Params.ParamByName('out변수명').Value = 1 then
  begin
    First;
    for i := 0 to RecordCount - 1 do
    begin
      str1 := Fields[0].AsString;
      str2 := Fields[1].AsString;
      Next;
    end;
  end;
end;
<

 

 마무리

UniDAC은 Databases(Oracle, SQL Server,  MySQL, MongoDB, Firebird 등등) 연결 가능 및 별도의 DB Client 설치 없이 Direct로 접속이 가능하기 때문에 편리하게 컴포넌트 이용할 수 있습니다.

 

반응형

댓글