적용 대상: BioStar 2.2.2 이전 버전


BioStar 2를 사용자가 많은 고객 사이트 또는 자체 ERP 및 급여 시스템에 설치할 때 가장 자주 묻는 질문 중 하나가 기존 시스템을 BioStar 2에 연결할 수 있는 방법에 대한 것입니다. 이 질문에 대한 해답이 될 수 있는 가장 쉽고 빠르고 일반적인 방법은 시스템 간 데이터베이스 연결을 만드는 것입니다.

BioStar 2는 애플리케이션에 포함할 수 있는 단순하고 가벼운 데이터베이스 유형으로 알려진 SQLite를 사용하며, 이는 라이브러리 파일과 유사합니다. 그렇기 때문에 독립적 DBMS(Database Management Server)를 설치하고 DB 인스턴스를 관리할 필요가 없습니다.

BioStar 1.x를 사용한 경험이 있는 경우 DBMS 설치가 시스템 환경의 영향을 많이 받는다는 사실을 알고 있을 것입니다. 즉, 데이터베이스 관리에 익숙하지 않은 설치 관리자에게는 초기 설치 자체가 큰 부담일 수 있습니다.

이와 반대로 SQLite는 비교적 단순한 데이터베이스 포함 유형입니다. 서버와 데이터베이스 사이에서 연결을 제어할 필요가 없으며, DBMS 설치가 올바르게 완료되지 않은 경우 문제를 해결하기 위해 SQL 패치 파일을 다운로드할 필요도 없습니다.

그렇다면 BioStar 1.x에서와 마찬가지로 다른 DBMS와 연결할 수 있는 방법은 무엇일까요?

다행히 SQLite에도 유사한 아키텍처 및 상속된 관계형 데이터베이스 구조가 있기 때문에 DB 링크 미들웨어 프로그램을 만들어 다른 데이터베이스와 연결할 수 있습니다.

SQLite로 DB 링크 애플리케이션을 만들려면 아래 준비 단계를 거쳐야 합니다. 비교적 단순하게 테스트를 수행하기 위해 C#을 사용했습니다. 즉, 이후의 참조 이미지는 모두 C# 프로그래밍에 기반합니다.

1. 프로그래밍 환경을 확인하고 아래에 있는 SQLite 다운로드 페이지에 따라 SQLite 라이브러리 패키지를 설치합니다.
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

또한 .Net 프레임워크 버전을 확인하고 올바른 버전을 설치하십시오. 로컬 PC의 Microsoft.Net 프레임워크 파일이 있는 폴더에서 .Net 프레임워크 버전을 확인할 수 있습니다.
(예) C:\Windows\Microsoft.NET\Framework64

2. 올바른 위치에서 패키지 파일을 찾은 다음 ‘References' 프로젝트에 추가합니다.

3. 컴파일러를 실행할 올바른 플랫폼을 사용하고 있는지 확인하십시오.

이제 미들웨어 애플리케이션을 구현하기 위한 프로그래밍 준비가 끝났습니다. SQLite로 DB 연결을 만들려면 DB 테이블 정보를 참조해야 합니다. BioStar 2.1 버전 이상에서는 로그 이벤트 기록에 BioStar.db.log.bk 파일이 사용됩니다. 최신 테이블 설명을 참조하십시오.


DB 테이블이 있으면 BioStar 2.1v에서 월 기준으로 로그 파일을 저장하도록 로그 테이블이 분할됩니다.

데이터 유형설명
EVTLGUIDD_UNQID - INTEGERPK고유한 이벤트 로그 ID
SRVDTD_DT - NONE 서버에 저장된 날짜/시간(UNIX 시간)
DEVDTD_DEVDT - INTEGER 이벤트가 발생하는 날짜/시간(장치 – UNIX 시간)
ISVLDATHD_VALYORN - TEXT TBD
DEVUIDD_UNQID - INTEGER 장치 ID
IMGLGUIDD_UNQID - INTEGER TBD
USRUIDD_UNQID - INTEGER ‘고유한 사용자 ID’: 해당 사용자에 의해 인증되었을 때
‘카드 번호’: 해당 카드로 카드 인증에 실패했을 때
‘0’ = 알 수 없는 사용자 또는 카드로 인해 액세스가 거부되었거나 인증에 실패했을 때
EVTINTEGER 이벤트 유형
SUBEVTINTEGER 이벤트 유형(추가)
CRDSLTEXT 카드 슬롯
TNAKEYTEXT TBD

(로그 테이블)



(SQLite 뷰)


최신 DB 테이블로 DB 연결을 만들었으며 execute reader 명령을 사용하기 위해 SQLiteCommand를 사용했습니다.

또한 SQL 서버로의 DB 연결을 만들고, SQL DB 테이블에 BioStar 2 DB 로그 데이터를 삽입하는 명령을 만들었습니다.

마지막으로 While 루프를 사용하여 Thread. Sleep을 실행했습니다. 이에 따라 특정 시간 주기로 재시도하게 됩니다.

[업데이트 상태를 보여주는 콘솔 팝업]

[데이터베이스 입력을 위해 연결된 SQL 테이블]

추가적으로 중복된 이벤트 로그 없이 애플리케이션이 DB 테이블에 데이터를 정확하게 삽입하도록 추가 로직을 만들어야 합니다. 여러분 스스로 추가 로직과 나머지 부분을 생성하고 프로젝트 환경에 따라 더 세부적인 조정을 할 수 있을 것입니다.