데이터베이스 연동하기!

DB

데이터베이스 연동하기!

관리자 0 667 2020.11.27 14:27

Database 연동하기


데이터 입력, 조회, 삭제 등 다양한 SQL 을 활용하여 SQLite 데이터베이스를 XSCADA와 실시간 연동한다.


074adccc034c66e27b97d9a94f8c11ce_1606454778_8395.png


1. 데이터베이스 파일 준비하기 (SQLite 기준)

 1) 아래와 같은 속성을 가진 데이터베이스 테이블을 생성한다.
· 예제 데이터베이스 파일명 : db1
· 예제 테이블명 : tb1
074adccc034c66e27b97d9a94f8c11ce_1606454778_9596.png


2. 태그 생성하기

 1) 태그 탐색기(Tag Explorer)에서 마우스 우측 클릭 후 2개의 아날로그 태그(Analog Tag)를 추가한 뒤 아래와 같이 이름을 설정한다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_0879.png


3. 데이터베이스 연동하기 (SQLite 기준)

 1) Designer 상단의 보기(View) > 데이터 소스(Data Sources) 선택 후 좌측에 활성화된 데이터 소스(Data Sources) 탭에서 마우스 우측 클릭 후 SQLite 추가(Add SQLite)를 클릭한다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_1588.png


 2) 미리 준비한 db1.db 파일을 불러온 뒤 [테스트(Test)] 버튼을 눌러 연결 상태를 확인한 뒤 [확인(OK)]을 누른다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_2319.png


 3) 생성된 sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT SQL 추가(Add SELECT SQL)를 클릭한 뒤 이름(Name)을 ‘select_all’로 변경 후 아래와 같이 SQL을 작성한 뒤 [확인(OK)]을 클릭한다.
· strftime( … ) : millisecond까지 표현하기 위해 사용 (대소문자 구분)
· order by no desc : no를 기준으로 내림차순 정렬하겠다는 의미
074adccc034c66e27b97d9a94f8c11ce_1606454779_2982.png


 4) sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT 이외의 SQL 추가(Add Other SQL)를 클릭한 뒤 이름(Name)을 ‘delete_all’로 변경한 뒤 아래와 같이 작성한다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_3579.png

※ SQL실행(Execute SQL)은 실제로 해당 SQL을 한번 실행하기 때문에 사용에 주의해야 하며, 특히 delete SQL의 경우 실제로 데이터를 삭제할 수 있기에 더욱 주의한다.




5. sqlite_1 데이터소스를 마우스 우측 클릭한 뒤 SELECT 이외의 SQL 추가(Add Other SQL)를 클릭한 뒤 이름(Name)을 ‘insert_data’로 변경한 뒤 아래와 같이 작성한다.
· SQL에서의 태그에 대한 접근은 #{그룹태그명.태그명}으로 가능
074adccc034c66e27b97d9a94f8c11ce_1606454779_4215.png



4. 화면 구성하기

 1) 도구모음에서 사각형(Rectangle)과 타원(Ellipse)을 생성한 뒤 대비가 잘 되도록 속성(Properties)에서 면 색상 변경(FillColor)을 한다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_4896.png


 2) 도구모음에서 2개의 텍스트(Text)를 생성한 뒤 속성(Properties)에서 텍스트(Text)를 아래와 같이 변경한다.
074adccc034c66e27b97d9a94f8c11ce_1606454779_5584.png


 3) 2개의 레이블(Label)을 생성한 뒤 바인딩 태그(Binding Tag)와 텍스트 형식(TextFormat)을 설정한다.

  (1) 도구모음에서 2개의 레이블(Label)을 생성한 뒤 항목에 맞게 속성(Properties)에서 바인딩 태그(Binding Tag)를 한다.
074adccc034c66e27b97d9a94f8c11ce_1606454790_4419.png


  (2) 2개의 레이블 모두 속성(Properties)에서 텍스트 형식(TextFormat)을 아래와 같이 설정한다.
074adccc034c66e27b97d9a94f8c11ce_1606454790_4961.png


 4) 도구모음 최하단 우측에 있는 리스트뷰(ListView)를 생성한다.
074adccc034c66e27b97d9a94f8c11ce_1606454790_5705.png


 5) 도구모음 최하단 우측에 있는 트렌드 차트(Trend Chart)를 생성한다.
074adccc034c66e27b97d9a94f8c11ce_1606454790_6553.png


 6) 디자인 화면 우측 상단에 DELETE 버튼을 생성한다.

  (1) 심볼 라이브러리(Symbol Library) > svglink.com에서 “텍스트박스(Textbox)” 검색 후 디자인 화면 우측 상단에 배치한다.


074adccc034c66e27b97d9a94f8c11ce_1606454790_8253.png


  (2) 텍스트박스(Textbox) 이미지와 겹치게 텍스트(Text)를 배치한 뒤 속성(Properties)에서 텍스트(Text)를 “DELETE”로 변경한다.

074adccc034c66e27b97d9a94f8c11ce_1606454790_8816.png

  (3) 텍스트박스(Textbox) 이미지와 텍스트(Text)를 함께 배치한 뒤 마우스 우측 클릭 후 객체 잠금(Lock object)를 설정한다.

074adccc034c66e27b97d9a94f8c11ce_1606454790_9259.png


 7) 흰색 타원(Ellipse) 객체 더블클릭 후 수평/수직 슬라이드(Horizontal/Vertical Slide)를 체크선택한 뒤 아래와 같이 설정한다.

074adccc034c66e27b97d9a94f8c11ce_1606454790_7613.png 



 8) 리스트 뷰(ListView) 객체 선택 후 속성(Properties)에서 바인딩 조회 SQL(BindSelectSQL) 항목에 sqlite_1.select_all SQL을 추가한 뒤, 리스트뷰(ListView) > 열 설정(Columns) 페이지 진입 후 4개의 열(column)을 추가한다.


074adccc034c66e27b97d9a94f8c11ce_1606454791_034.png


 9) 생성된 4개의 열(columns)을 아래와 같이 바인딩 필드(Binding Field), 셀 텍스트 형식(CellFormat), 이름(Name), 너비(Width) 등을 설정한다.
· 바인딩 필드(Binding Field) : 데이터베이스의 필드명을 직접 입력 (no, data1, data2, insert_date)
074adccc034c66e27b97d9a94f8c11ce_1606454791_1301.png
074adccc034c66e27b97d9a94f8c11ce_1606454801_5599.png


 10) 트렌드 차트(TrendChart) 선택 후 속성(Properties)에서 시리즈(Series) 설정창에 진입한 뒤 2개의 시리즈(series)를 추가하고 아래와 같이 바인딩 태그(Binding Tag), 이름(Name), 색상(Color) 등을 설정한다.
074adccc034c66e27b97d9a94f8c11ce_1606454801_6703.png


5. 스크립트 작성하기

 1) 디자인 화면 좌측 상단에서 스크립트(Script)를 클릭하여 스크립트 작성창에 진입한다.
074adccc034c66e27b97d9a94f8c11ce_1606454801_7876.png


 2) 스크립트 작성창이 활성화되면 아래와 같이 작성한다.
· $XT("Data_A") : Data_A 태그에 대한 접근
· $XD("sqlite_1") : sqlite_1 데이터 소스에 대한 접근
· $XV("listview_1") : listview_1 객체에 대한 접근
074adccc034c66e27b97d9a94f8c11ce_1606454801_8666.png


 3) 페이지에 대한 속성(Properties) > 스크립트(Script)창에 진입한 뒤 페이지(Page) > OnLoad 우측 점 3개를 클릭한 뒤 page_1_OnLoad(event)를 선택한다.
074adccc034c66e27b97d9a94f8c11ce_1606454801_9593.png


 4) group_1 객체 선택 후 속성(Properties) > 스크립트(Script)창에 진입한 뒤 마우스(Mouse) > OnClick 우측 점 3개를 클릭한 뒤 group_1_OnClick (event)를 선택한다.
074adccc034c66e27b97d9a94f8c11ce_1606454802_036.png


6. 실행하기

 1) 저장 후 시작 버튼 또는 F5를 눌러 뷰어를 실행한 타원(Ellipse) 객체를 움직여 태그 값을 변화시키거나 DELETE 버튼을 눌러 데이터를 삭제하여 데이터 변화를 직접 확인한다.
074adccc034c66e27b97d9a94f8c11ce_1606454802_1021.png


 2) 데이터베이스에서 데이터가 정상적으로 기록되었는지 확인한다. 




 

Comments