0-1. 컴퍼넌트 설치 및 개발환경 개발툴 버전: lazarus-2.0.8-fpc-3.0.4-win64 사용 컴퍼넌트: Indy 10.6.2, zeoslib-7.3-r6603 데이터베이스: Firebird-3.0.5.33220_0_x64 Firebird DB는 Character Set을 UTF8이나 UNICODE_FSS로 생성해야 라자루스에서 한글이 깨지지않는다. SQL> CREATE DATABASE 'D:\Data\TEST-UNI.FDB' PAGE_SIZE = 8192 USER 'SYSDBA' PASSWORD 'masterkey' DEFAULT CHARACTER SET UNICODE_FSS; 3티어로 개발할 것이기때문에 TCP/IP용 통신 컴퍼넌트가 필요하다. 본 강좌에서는 델파이에도 기본 설치되어있는 Indy 10을 사용하기로 한다. Indy 컴퍼넌트는 아래 사이트에서 다운 받을 수 있다. https://github.com/IndySockets/Indy http://packages.lazarus-ide.org/Indy10.zip Indy 컴퍼넌트를 라자루스에 설치하면 델파이에서보다 엄청 많은 수의 컴퍼넌트 탭이 생성 된다. 탭 마다 컴퍼넌트 개수가 줄어드는 장점은 있지만 탭이 많아서 스크롤 해야하는 문제가 생긴다. "IdDsnCoreResourceStrings.pas"와 "IdDsnResourceStrings.pas"에 있는 해당 변수의 값을 지우고 설치 하면 컴퍼넌트 탭의 개수를 줄일 수 있다.
    // IdDsnCoreResourceStrings.pas
    {$IFDEF FPC}
    //  CoreSuffix = ' - Core'; // 2020.06.04 by K.I.S
      CoreSuffix = ''; // 2020.06.04 by K.I.S
    {$ENDIF}

    // IdDsnResourceStrings.pas
    {$IFDEF FPC}
      //This is part of a workaround for the Lazarus IDE Toolbar being
      //unable to scroll.
    // 2020.06.04 by K.I.S -- begin
    //  RSProt = ' Protocols';
    //  RSProtam = ' Protocols (am)';
    //  RSProtnz = ' Protocols (nz)';
    //  RSMappedPort = ' Mapped Port';
    //  RSEncoder = ' Encoder';
    //  RSDecoder = ' Decoder';
      RSProt = '';
      RSProtam = '';
      RSProtnz = '';
      RSMappedPort = '';
      RSEncoder = '';
      RSDecoder = '';
    // 2020.06.04 by K.I.S -- end
    {$ENDIF}
DB 접속용 컴퍼넌트는 기본적으로 SQLdb가 설치되어있는데 몇 가지 문제가 있어서 ZeosLib를 사용하기로했다. 한가지 예를 들면, char 한 자리로 설정한 필드가 공백이 채워진 3자리의 문자 필드로 반환 되어서 엉뚱하게 처리 되는 문제가 있다. ZeosLib는 아래 사이트에서 다운 받을 수 있다. 본 예제에서는 개발버전인 7.3을 사용한다. 7.3은 사이트의 Subversion 탭에서 받을 수 있다. https://sourceforge.net/projects/zeoslib/ 그 외 필요한 컴퍼넌트들은 아래 사이트에서 찾을 수 있을 것이다. https://sourceforge.net/projects/lazarus-ccr/ http://packages.lazarus-ide.org ※ 기본 적으로 라자루스에서 컴파일한 실행 파일에는 디버깅 정보가 포함되어있어서 상당히 크다. 디버그 정보를 끄고 "Optimization levels"를 "-O3"으로 지정한 후 컴파일하면 실행파일의 크기를 줄일 수 있다. |