자료 참고 안내 1. 본 자료실의 모든 자료 저작권은 ㈜에이치앤에스에 있습니다.

본 자료는 개발하시는데 참고자료 용도로 사용하실 수 있으며 저작권 표시 없이 복사,게재, 출판 하실 수 없습니다. 외부 게재 사용 시 반드시 출처 항목에 회사명과 사이트 주소를 반드시 명시해 주시기 바랍니다.
[표기 예] 출처 : ㈜에이치앤에스(www.hnsts.co.kr) 또는 ㈜HNS(www.hnsts.co.kr)

2. 제품 개발 시 내용과 예제 코드는 수정 및 검증작업을 직접 하셔야 하며 문제 발생에 대한 책임은 ㈜HNS사와 무관합니다.

본사는 자료를 최신내용으로 유지하기 위해 노력하고 있으며 제공되는 정보의 오류 및 내용이 정확하지 않을 경우 사전 공지 없이 업데이트 될 수 있습니다. 자료의 문제점 발견 시 본사로 문의주시면 검토하여 자료를 수정하도록 하겠습니다.

IEC-Series에서 MySQL(MariaDB)사용하기(원격 DB)
작성일 2017-03-07 수정일 2022-10-05 조회수 3047
분류 Knowhow
적용
플랫폼
키워드 원격 데이터베이스, REMOTEDATABASE, MYSQLDB 서버 사용, MARIADB 서버 사용
첨부파일 TechNote31_Example.zip
본 자료는
1. 원격 데이터베이스 지원 안내
2. MySQL 설치(환경 구축)
2-1. MySQL Server/Installer 설치 및 설정
2-2. MySQL Workbench 설치 후 데이터베이스 및 계정 만들기
2-3. MySQL의 데이터베이스 및 계정 만들기(커맨드 창)
3. Maria DB 환경 구축하기
3-1. Maria DB 설치하기
3-2. 마리아(Maria) DB의 데이터베이스 및 계정 만들기(커맨드 창)
4. IEC-Series(클라이언트)의 환경 구축하기
5. SQL CE의 사용 방법과 MySQL 클라이언트 프로그램의 사용 방법 소스 비교
순서로 진행합니다.
1. 원격 데이터베이스 지원 안내

기존 SQL Mobile for ADO.NET을 사용하여 데이터베이스 처리를 하는 경우 해당 IEC-Series 한 대에서만 데이터를 조작 가능하였으나 MySQL/MariaDB를 사용하여 접속하는 경우 동시에 여러 장비가 로컬/리모트 방식으로 데이터 조작이 가능합니다.

  • SQL CE 사용(기존 방식)

    IEC-Series 내부의 DB

    1. 해당 기기 한 대만 사용 가능
    2. IEC-Series 기기에서만 DB 접근 가능

  • MySQL/Maria DB 사용(새로운 방식)

    원격지의 MySQL/Maria DB 서버와 IEC-Series(복수)

    1. Server(MySQL/MariaDB) 〈-- --〉 Client(IEC-Series) 가능. 동시에 여러 장비 운영 가능
    2. Remote 기능 사용 가능
    인터넷 또는 네트웍이 연결된 곳이라면 어디든지 데이터 접속 가능


  • MySQL
    DB Server Side
    DB Engine IDE Tool Command
    MySQL WorkBench 지원 지원

    DB Client Side
    DB Access Engine
    MySQL Connector Net 6.9.8 Assemblies
  • Maria DB
    DB Server Side
    DB Engine IDE Tool Command
    Maria DB 미지원 지원

    DB Client Side
    DB Access Engine
    MySQL Connector Net 6.9.8 Assemblies

2. MySQL 환경 구축하기

여기서는 MySQL을 다운로드하고 설치하는 방법을 안내합니다.


2-1. MySQL 설치
주의버전 및 설치 방법을 정확히 따라하지 않는 경우 데이터베이스에 정상적으로 연결되지 않을 수 있기 때문에 반드시 아래에서 설명하는 방법과 버전에 따라 설치 및 환경 설정을 진행하시기 바랍니다.

  • [STEP-1] https://downloads.mysql.com/archives/installer/에 접속합니다.
    ※ 해당 사이트 주소는 추후 dev.mysql.com에 의해 별도의 공지 없이 변경될 수 있습니다.

  • [STEP-2] Windows (x86, 32-bit), MSI Installer를 다운로드 합니다.

    해당 페이지에서 Product Version을 5.7.38 버전으로 설정한 뒤 설치 파일 중 아래의 Windows (x86, 32-bit), MSI Installer (대략 523MB 용량)을 다운로드 받습니다. 현재 설치 안내 페이지에서는 사용하는 개발 PC의 운영체제(OS)의 시스템이 32비트, 64비트 관계없이 하나의 설치파일로 설치가 가능하다고 안내하고 있습니다.

    center

  • [STEP-3] 다운로드 후 받은 파일을 실행하여 설치를 진행합니다.
  • [STEP-3-1] Choosing a Setup Type 화면에서 Server only를 선택합니다.

    윈도우 OS의 경우 기본 설치되는 위치는 C:\Program Files\MySQL Server 5.7이며 사용하는 OS와 사용자의 경로 지정에 따라 다를 수 있습니다.

    center
  • [STEP-3-2] 설치를 진행하신 뒤 Type and Networking 화면에서 MySQL Server 환경설정을 진행합니다.

    Config Type은 Development Computer로 설정한 뒤 TCP/IP 체크, Port는 3306으로 설정합니다.

    center
    주의MySQL Server는 기본 3306포트를 사용하며 OS의 방화벽 정책에서 해당 포트를 차단하지 않기 위해 Open Firewall port for network access를 체크하기 바랍니다.

  • [STEP-3-3] Accounts and Roles 화면에서 MySQL Root Password를 설정할 수 있습니다,

    사용하시는 분들은 복잡한 암호로 설정을 권장합니다. 하단의 Add User 버튼을 클릭하고 사용자가 원하는 임의의 User를 생성합니다

    center
    Ex) Add User 추가 예시
    UserName Host Role Authentication Password
    smartx <All Hosts (%)> DB Admin MySQL 12345
    User
    Name
    Host Role Authen
    tication
    Pass
    word
    smartx <All Ho
    sts (%)>
    DB
    Admin
    MySQL 12345
    center
  • [STEP-4] Windows Service 화면에서 이름을 지정 → Plugins and Extensions 화면은 통과 → Apply Server Configuration 화면에서 “Execute”를 클릭하면 설치가 진행되고 설치 완료 후 “Finish” 버튼을 클릭하면 모든 설치가 완료됩니다.
    ※ 파일 설치에 관한 보다 자세한 설명을 원하시는 경우 MySQL 사이트의 안내를 참조하시기 바랍니다

2-2. MySQL Workbench 설치 후 데이터베이스 및 계정 만들기 1) MySQL Workbench 설치
  • [STEP-1] https://downloads.mysql.com/archives/workbench/에 접속합니다.
    ※ 해당 사이트 주소는 추후 dev.mysql.com에 의해 별도의 공지 없이 변경될 수 있습니다.

  • [STEP-2] Windows (x86, 64-bit), MSI Installer를 다운로드 합니다.

    해당 페이지에서 Product Version을 6.35 버전으로 설정한 뒤 설치 파일 중 Windows (x86, 64-bit), MSI Installer를 다운로드 받습니다.

    center
  • [STEP-3] 다운로드 받은 설치 파일을 실행하여 MySQL Workbench를 설치합니다.
    별도의 설정 없이 Next를 클릭하여 설치를 진행하시기 바랍니다

2) 데이터베이스 생성하기
  • [STEP-1] 스키마(데이터베이스)를 생성합니다.

    좌측에서부터 4번째 아이콘인 “Create a new schema in the connected server”를 선택합니다.

    center
  • [STEP-2] 스키마(데이터베이스)의 Name과 Collation을 설정합니다.

    스키마의 이름은 “smartx”로 Collation은 “utf8-default collation”으로 선택합니다.

    center
  • [STEP-3] 데이터베이스 생성 완료하기

    우측 하단의 Apply 버튼을 클릭하면 스키마(데이터베이스)가 성공적으로 생성됩니다. 만약 동일한 스키마가 존재하는 경우 에러가 발생하므로 주의 바랍니다. 왼쪽의 Navigator바에서 생성된 스키마를 확인 가능합니다.

    center
    center
3) 계정 만들기
  • [STEP-1] Users and Privileges → Add Account 선택

    왼쪽 Navigator에서 Users and Privileges를 클릭하면 위와 같은 화면이 나오는데 사용자 계정을 추가하기 위해 Add Account를 클릭합니다.

    center
  • [STEP-2] User Id와 Password를 입력

    Login Name에 사용자 이름(smartx)을, Password와 Confirm Password에 비밀번호(12345)를 입력합니다.

    center
  • [STEP-3] 사용자에게 권한 설정하기

    사용자에게 권한을 주기 위해, Login 탭에서 Schema Privileges 탭으로 이동을 한 후 Add Entry... 버튼을 클릭합니다.

    center
  • [STEP-4] 사용할 스키마 선택

    특정 스키마(데이터베이스)를 사용할 수 있게 권한 설정을 하려면, Selected schema를 선택한 후 사용할 스키마를 선택하고 OK 버튼을 누르면 됩니다. 전체 스키마에 접근하게 하려면 All schema를 선택합니다.

    center
  • [STEP-5] 사용자의 권한을 설정

    각각의 권한을 따로 줄 수도 있고 우측 하단의 Select ALL을 선택하여 전체 권한을 줄 수도 있습니다.

    center
2-3. MySQL의 데이터베이스 및 계정 만들기(커맨드 창)

아래의 설명의 경우 MySQL Workbench를 사용하지 않고 명령 프롬프트(CMD)에서 데이터베이스 및 계정을 만드는 방법에 대해서 설명하고 있습니다. 2-2 내용을 참고하여 Workbench로 데이터베이스 및 계정 생성을 완료하셨다면 아래의 내용은 넘어가셔도 됩니다.

  • [STEP-1] 검색 창에서 “CMD”를 입력하여 명령 프롬프트를 실행합니다.
  • [STEP-2] 홈 디렉토리를 MySQL Server가 설치된 위치로 이동합니다.

    CD C:\Program Files\MySQL\MySQL Server 5.7\bin 명령어를 입력하여 디렉토리를 이동합니다.
    ※ 별도로 경로를 지정하지 않은 경우 위치는 “C:\Program Files\MySQL\MySQL Server 5.7\bin”입니다.


  • [STEP-3] C:\Program Files\MySQL\MySQL Server 5.7\bin 경로에 진입했다면mysql -u smartx -p를 입력합니다.

    Ex) mysql -u smartx -p를 입력하고 Enter password : 에는 12345를 입력합니다.


  • [STEP-4] mysql에 show databases;를 입력하여 DB목록을 확인합니다.
  • [STEP-5] 기존에 존재하는 Database를 사용해도 되지만 여기서는 신규로 Database를 생성해보겠습니다.

    mysql>create database DB명; 을 입력합니다.
    Ex) create database smartx;
    mysql>show databases; 를 다시 입력해보면 smartx가 만들어져 있습니다.

  • [STEP-6] 계정을 만들고 권한을 부여하는 명령어를 입력합니다.
    ※ 설명의 편의를 위해 모든 권한을 주었지만 실제 사용 시에는 필요한 권한만 부여하시기 바랍니다.

    mysql>create user ‘user name’ identified by ‘password’; 를 입력하여 계정을 추가합니다.
    Ex) create user ‘smartx’ identified by ‘12345’;

    그 후 계정에 권한을 부여하기 위해 다음 명령어를 입력합니다.
    mysql>grant all privileges on smartx.* to ‘user name’;
    Ex) grant all privileges on smartx.* to ‘smartx’;

    참고보다 자세한 MySQL 내용은 "http://www.mysql.com/"에서 검색이 가능합니다.

3. Maria DB 환경 구축하기

여기서는 Maria DB를 다운로드하고 설치하는 방법을 안내합니다.

3-1. Maria DB 설치하기
  • [STEP-1] https://downloads.mariadb.org/에 접속합니다.
    ※ 사이트 주소 및 설치파일은 추후 http://mariadb.org/에 의해 별도의 공지 없이 변경될 수 있습니다.

  • [STEP-2] 사용하는 PC의 OS환경에 일치하는 파일을 다운로드 받습니다.

    해당 사이트에 접속 후 MariaDB Server Version아래에 있는 Display older releases 체크박스를 체크합니다. 그 후 MarialDB Server 10.1.18 버전을 선택한 뒤 OS 환경에 맞게 설정 후 다운로드합니다. 파일 다운로드 시 가입을 요구하는 경우 하단의 "No thanks, just take me to the download"를 클릭합니다.

    center

  • [STEP-3] 다운로드 후 받은 파일을 실행하여 설치를 진행합니다.
  • [STEP-3-1] Custom Setup 화면에서 설정 변경없이 기본 설정으로 진행합니다.

    윈도우 OS의 경우 기본 설치되는 위치는 C:\Program Files\MariaDB 10.1\이며 사용하는 OS와 사용자의 경로 지정에 따라 다를 수 있습니다.


  • [STEP-3-2] Default instance properties 화면에서 ‘root’ 사용자의 암호를 설정합니다.

    Modify password for database user ‘root’를 체크하고 New root password에 비밀번호를 입력합니다. Confirm에도 동일한 비밀번호를 입력합니다.
    원격에서 root 사용자의 접속이 되기 위해 Enable access from remote machines for ‘root’ user를 체크합니다.

    center
  • [STEP-3-3] Default instance properties 화면에서 기본 설정 값을 유지하고 Next를 클릭합니다.

    - Install as service 체크. Service Name : MySQL
    - Enable networking 체크. TCP port : 3306
    - Optimize for transactions 체크. Buffer pool size : 776MB

    center
    주의마리아(Maria) DB는 기본 MySQL에서 파생된 DB로서 Service Name과 TCP port가 MySQL과 동일하여 기본설정으로 설치 시 에러가 발생하므로 MySQL 과 함께 사용하는 경우에는 TCP port 번호를 MySQL과 다르게 하여 사용하기 바랍니다.

  • [STEP-3-4] Install 버튼을 클릭하여 설치를 진행하고 설치가 완료되면 Finish버튼을 클릭합니다.
3-2. 마리아(Maria) DB의 데이터베이스 및 계정 만들기(커맨드 창)
  • [STEP-1] Maria DB의 접속을 위해 윈도우 실행창에 ‘CMD’를 입력하고 Maria DB의 설치 경로인 C:\Program Files\MariaDB 10.1\bin으로 이동합니다.

    CD C:\Program Files\MariaDB 10.1\bin 명령어를 입력하여 디렉토리를 이동합니다.


  • [STEP-2] 첨부된 예제 테스트를 위해 DB(smartx)와 User(smartx)를 추가해야 합니다.
  • [STEP-2-1] 먼저 root 사용자로 데이터 베이스 접속합니다.

    C:\Program Files\MariaDB 10.1\bin>mysql -u root -p12345 명령어를 입력합니다.


  • [STEP-2-2] 데이터베이스 smartx를 생성합니다.

    Maria DB [(none)]>create database smartx; 명령어를 입력합니다.


  • [STEP-2-3] 아이디는 smartx, 비밀번호는 12345인 계정(User)를 생성합니다.

    Maria DB [(none)]>create user 'smartx' identified by '12345' 명령어를 입력합니다.


  • [STEP-2-4] 계정 smartx에게 smartx데이터베이스 내의 모든 테이블에 모든 권한을 부여합니다.
    ※ 설명의 편의를 위해 모든 권한을 주었지만 실제 사용 시에는 필요한 권한만 부여하시기 바랍니다.

    Maria DB [(none)]>grant all privileges on smartx.* to ‘smartx’ 명령어를 입력합니다.


    주의 마리아 DB의 버전에 따라 워크벤치와 호환성 문제가 존재하는 경우가 있습니다. 워크벤치 프로그램에서는 워크벤치가 MySQL DB 5.1, 5.5, 5.6, 5.7에서 테스트되었다고 안내합니다. 그 이외의 MySQL DB 버전을 사용하는 경우 호환성 문제로 정상 동작하지 않을 수 있습니다. 만약 마리아 DB로 인해 워크벤치가 정상적으로 접속되지 않는 경우 MySQL DB 사용을 권장합니다.

4. IEC-Series(클라이언트)의 환경 구축하기

서버사이드 구축(MySQL Server 환경설정)이 완료된 후 MySQL의 Client환경 구축이 필요합니다. 프로젝트에서 MySQL Server로 접속하기 위해 반드시 MySql.Data.CF.dll 파일을 참조해야 합니다. 이 파일은 MySQL Connector를 설치한 후 “C:\Program Files(x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v2.0” 경로에 존재합니다. 현재 6.4.4 ~ 6.9.8버전까지 사용 가능하기 때문에 알맞은 버전을 설치하셔야 합니다. (본 예제에서는 6.9.8 버전을 사용하였습니다.)

주의6.9.0 ~ 6.9.6버전은 설치 이후 삭제가 되지 않는 오류가 발생하기 때문에 설치하지 않는 것을 권장합니다.

  • [STEP-1] https://downloads.mysql.com/archives/c-net/에 접속합니다.

    ※ 해당 사이트 주소는 추후 dev.mysql.com에 의해 별도의 공지 없이 변경될 수 있습니다.


  • [STEP-2] Windows(x86, 32-bit), MSI Installer를 다운로드합니다.

    현재 설치 안내 페이지에서는 사용하는 개발 PC의 운영체제(OS)의 시스템이 32비트, 64비트 관계없이 하나의 설치파일로 설치가 가능하다고 안내하고 있습니다. MSI Installer만 지원하고 있으니 반드시 인터넷이 되는 개발 컴퓨터에서 설치하시길 바랍니다.

    center
    주의mysql-connector-net-6.4.4.exe ~ mysql-connector-net-6.9.8.exe 버전까지만 MySql.Data.CF.dll 파일을 지원하고 있으니 반드시 알맞은 버전으로 설치하시길 바랍니다.

  • [STEP-3] 다운로드 받은 파일을 압축 해제 후 설치를 진행합니다.
  • [STEP-3-1] 압축 해제한 파일을 더블 클릭하여 Setup 화면 진행 후 Choose Setup Type에서 Complete을 선택 후 설치를 진행합니다.

    정상적으로 설치가 완료된 경우 설치 경로는 C:\Program Files(x86)\MySQL\MySQL Connector Net 6.9.8\로 설정됩니다.


주의 프로젝트에서 MySQL Server로 접속하기 위해서는 MySql.Data.CF 파일을 참조해줘야 합니다.

  • ※ 프로젝트 → 솔루션 탐색기 → 참조 → 참조 추가를 선택합니다.
    center
  • ※ 파일 위치 : C:\Program Files(x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v2.0
    center

[표] Test DB "Employee"의 구조
컬럼 NAME AGE POSITION PART ENTERING
설명 이름 나이 직책 부서 현재시간
데이터 타입 varcha(30) int(5) varchar(30) varchar(30) DateTime

컬럼 NAME AGE POSI
TION
PART ENTE
RING
설명 이름 나이 직책 부서 현재
시간
데이터
타입
varcha
(30)
int
(5)
varchar
(30)
varchar
(30)
Date
Time

[Connection String 구성]
기본 구성 Server=myServerAddress; [Port=1234]; Database=myDataBase;Uid=myUsername; Pwd=myPassword;
데이터 타입 Server: MySQL 서버 주소(IP or URL)
Port : 서버 포트 생략할 경우 기본값 설정됨 (기본값: 3306)
Database : 사용할 DataBase 이름
Uid : 사용자 접속 계정
Pwd : 접속 Password
기본
구성
Server=myServerAddress; [Port=1234]; Database=myDataBase; Uid=myUsername; Pwd=myPassword;
데이터
타입
Server: MySQL 서버 주소(IP or URL)
Port : 서버 포트 생략할 경우 기본값 설정됨 (기본값: 3306)
Database : 사용할 DataBase 이름
Uid : 사용자 접속 계정
Pwd : 접속 Password

5. SQL CE의 사용 방법과 MySQL 클라이언트 프로그램의 사용 방법 소스 비교 1) 데이터베이스 커넥션 객체 선언(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
// 데이터베이스 커넥션 객체 선언
private SqlCeConnection m_conn;
// 데이터베이스 경로 문자열 변수 선언
private string m_strDBPathName;

// 데이터베이스 경로 설정 속성
public string DBPathName
{
set
{
// valule는 속성값
m_strDBPathName = value;
}
get
{
return m_strDBPathName;
}
}
// 데이터베이스 커넥션 객체 선언
private MySqlConnection m_conn;
// 쿼리 객체 생성. 데이터의 삽입, 삭제
// 갱신을 위해 MySqlCommand 선언

MySqlCommand comm;

2) 데이터베이스 연결 처리(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
// 데이터베이스 연결 처리(성공 : 리턴값 True, 실패 : 리턴값 False)
public bool Connection()
{
string strConnection;
strConnection = @"Data Source=###";
strConnection = strConnection.Replace(@"###", m_strDBPathName);
try
{
// 데이터베이스 연결 설정
m_conn = new SqlCeConnection(strConnection);
}
catch (Exception exp)
{
exp.ToString();
return false;
}
return true;
}
// 데이터베이스 연결 처리(성공 : 리턴값 True, 실패 : 리턴값 False)
public bool Connection(string strServerAddress, string strDBName,
string strUserID, string strPassword)
{
string strConnection;
strConnection = String.Format("server={0};uid={1};pwd={2};database={3};Charset=utf8", strServerAddress, strUserID, strPassword, strDBName);
m_conn = new MySqlConnection(strConnection);
try
{
// 데이터베이스 연결 설정
m_conn = new MySqlConnection(strConnection);
/// 데이터베이스 연결
m_conn.Open();
// 데이터베이스 smartx에 EMPLOYEE 테이블이
존재하는 경우 삭제 후 다시 만듬
// 데이터베이스 연결 시 최초 1회 실행
string sql = "DROP TABLE IF EXISTS EMPLOYEE; CREATE TABLE EMPLOYEE(NAME varchar(30), AGE int(5), POSITION varchar(30),PART varchar(30), ENTERING DateTime)";
// 데이터의 삽입, 삭제, 갱신을 위해 MySqlCommand에 해당 sql문을 인자로 입력
comm = new MySqlCommand(sql, m_conn);
// 연결에 대해 Transact-SQL문을 실행하고 영향을 받는 행을 반환
comm.ExecuteNonQuery();
}
catch (MySql.Data.MySqlClient.MySqlException exp)
{
exp.ToString();
return false;
}
m_conn.Close();
return true;
}

3) 데이터베이스 처리 객체 생성과 연결(Form1.cs 부분)
SqlCE (기존) MySQL(신규)
// 데이터베이스 처리 객체 생성
m_CEDataBase = new CCEADODOTNET();
// 데이터베이스 경로 설정(CCEADODOTNET.cs 클래스를 참조)
m_CEDataBase.DBPathName = "SD Card\\emp.sdf";
// 데이터베이스 연결(CCEADODOTNET.cs 클래스를 참조)
m_CEDataBase.Connection();
// 데이터베이스 처리 객체 생성
m_CEDataBase = new CCEADODOTNET();
// 데이터베이스 연결(CCEADODOTNET.cs 클래스를 참조)
// m_CEDataBase.Connection(strServerAddress, strDBName, strUserID, strPasswrod)로 구성됩니다.
// StrServerAddress는 MySQL Server의 주소를 입력하며 도메인 혹은 IP를 입력합니다.
// StrDBName는 해당 DBName을 입력하며 MySQLServer에서 생성된 DB명을 입력합니다.
// strUserID는 MySQL Server에 접속하는 경우 연결할 UserID를 입력합니다.
// strPassword는 해당 UserID의 Password를 입력합니다.
// 입력 예시
m_CEDataBase.Connection("192.168.1.14","smartx","smartx", "12345");

4) 데이터베이스 Open(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
// 연결된 데이터베이스를 Open
private bool Open()
{
if (m_conn == null)
{
return false;
}
try
{
// 데이터베이스 Open
m_conn.Open();
}
catch (Exception exp)
{
exp.ToString();
return false;
}
return true;
}
// 연결된 데이터베이스를 Open
private bool Open()
{
if (m_conn == null)
{
return false;
}
try
{
// 데이터베이스 Open
m_conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException exp)
{
exp.ToString();
return false;
}
return true;
}

5) 데이터베이스 데이터 삽입(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
// 데이터베이스에 사원 정보 입력(성공 : 리턴값 True, 실패 : 리턴값 False)
public bool AddData(Employee emp)
{
if (m_conn == null)
{
return false;
}
// 연결된 데이터베이스 Open
Open();
// 사원 정보를 저장하기 위한 SQL 쿼리
string strQuery = "INSERT INTO EMPLOYEE VALUES (@NAME, @AGE, @POSITION, @PART, @ENTERING)";
// 쿼리 객체 생성
SqlCeCommand comm = new SqlCeCommand(strQuery, m_conn);

// 필드 데이터 타입 설정
comm.Parameters.Add("@NAME",System.Data.SqlDbType.NVarChar);
comm.Parameters.Add("@AGE",System.Data.SqlDbType.Int);
comm.Parameters.Add("@POSITION",System.Data.SqlDbType.NVarChar);
comm.Parameters.Add("@PART",System.Data.SqlDbType.NVarChar);
comm.Parameters.Add("@ENTERING",System.Data.SqlDbType.DateTime);
// 필드값 설정
comm.Parameters["@NAME"].Value = emp.strName;
comm.Parameters["@AGE"].Value = emp.iAge;
comm.Parameters["@POSITION"].Value = emp.strPosition;
comm.Parameters["@PART"].Value = emp.strPart;
comm.Parameters["@ENTERING"].Value = emp.dDatetime;

// 쿼리 실행
try
{
if (comm.ExecuteNonQuery() == 1)
{
comm.Dispose();
//Close 메서드가 호출되어야 변경된 데이터베이스의 내용이 물리적인 파일에 기록된다.
// 따라서 장치(IEC-Series)의 전원이 임의로 Off될 수 있는 시스템에서는
// 데이터 베이스의 변경이 발생할 경우 m_conn.Close()메서드를 반드시 호출하시기 바랍니다.
m_conn.Close();
// 정보 입력 성공
return true;
}
}
catch(SqlCeException)
{
return false;
}
// 정보 입력 실패
return false;
}
// 데이터베이스에 사원 정보 입력(성공 : 리턴값 True, 실패 : 리턴값 False)
public bool AddData(Employee emp)
{
if (m_conn == null)
{
return false;
}
// 연결된 데이터베이스 Open
Open();
// 사원 정보를 저장하기 위한 SQL 쿼리
string strQuery = "INSERT INTO EMPLOYEE VALUES (@NAME, @AGE, @POSITION, @PART, @ENTERING)";
// 쿼리 객체 생성
comm = new MySqlCommand(strQuery, m_conn);

// 필드 데이터 타입 설정
comm.Parameters.Add("@NAME", MySqlDbType.VarChar);
comm.Parameters.Add("@AGE", MySqlDbType.Int32);
comm.Parameters.Add("@POSITION", MySqlDbType.VarChar);
comm.Parameters.Add("@PART", MySqlDbType.VarChar);
comm.Parameters.Add("@ENTERING", MySqlDbType.DateTime);
// 필드값 설정
comm.Parameters["@NAME"].Value = emp.strName;
comm.Parameters["@AGE"].Value = emp.iAge;
comm.Parameters["@POSITION"].Value = emp.strPosition;
comm.Parameters["@PART"].Value = emp.strPart;
comm.Parameters["@ENTERING"].Value = emp.dDatetime;

// 쿼리 실행
try
{
if (comm.ExecuteNonQuery() == 1)
{
comm.Dispose();
// Close 메서드가 호출되어야 변경된 데이터베이스의 내용이 물리적인 파일에 기록된다.
// 따라서 장치(IEC-Series)의 전원이 임의로 Off될 수 있는 시스템에서는
// 데이터 베이스의 변경이 발생할 경우 m_conn.Close()메서드를 반드시 호출하시기 바랍니다.
m_conn.Close();
// 정보 입력 성공
return true;
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
return false;
}
m_conn.Close();
// 정보 입력 실패
return false;
}

6) 데이터베이스 데이터 삭제(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
public bool DeleteData(string strName)
{
if (m_conn == null)
{
return false;
}
// 연결된 데이터베이스 Open
Open();
// 사원 정보를 삭제하기 위한 SQL 쿼리
string strQuery = "DELETE FROM EMPLOYEE WHERE NAME = '" + strName + "'";
// 쿼리 객체 생성
SqlCeCommand comm = new SqlCeCommand(strQuery, m_conn);
// 쿼리 실행
if (comm.ExecuteNonQuery() == 1)
{
comm.Dispose();
// Close 메서드가 호출되어야 변경된 데이터베이스의 내용이 물리적인 파일에 기록된다.
// 따라서 장치(IEC-Series)의 전원이 임의로 Off될 수 있는 시스템에서는 데이터베이스의 변경이 발생할 경우 m_conn.Close()메서드를 반드시 호출하시기 바랍니다.
m_conn.Close();
return true;
}
return false;
}
public bool DeleteData(string strName)
{
if (m_conn == null)
{
return false;
}
// 연결된 데이터베이스 Open
Open();
// 사원 정보를 삭제하기 위한 SQL 쿼리
string strQuery = "DELETE FROM EMPLOYEE WHERE NAME = '" + strName + "'";
// 쿼리 객체 생성
MySqlCommand comm = new MySqlCommand(strQuery, m_conn);
// 쿼리 실행
if (comm.ExecuteNonQuery() == 1)
{
comm.Dispose();
// Close 메서드가 호출되어야 변경된 데이터베이스의 내용이 물리적인 파일에 기록된다.
// 따라서 장치(IEC-Series)의 전원이 임의로 Off될 수있는 시스템에서는 데이터베이스의 변경이 발생할 경우 m_conn.Close()메서드를 반드시 호출하시기 바랍니다.
m_conn.Close();
return true;
}
return false;
}

7) 데이터베이스 데이터 검색(CCEADODOTNET.cs 부분)
SqlCE (기존) MySQL(신규)
public DataSet SearchData(string strName)
{
DataSet retDataSet = new DataSet();
string strQuery;

// 사원 정보를 얻기위한 위한 SQL 쿼리 (* 인경우 모든 정보를 얻음)
if (strName == "*")
{
strQuery = "SELECT NAME, AGE, POSITION, PART, ENTERING FROM EMPLOYEE";
}
else
{
strQuery = "SELECT NAME, AGE, POSITION, PART, ENTERING FROM EMPLOYEE WHERE NAME = '" + strName + "'";
}

if (m_conn == null)
{
return null;
}

// 연결된 데이터베이스 Open
Open();

SqlCeDataAdapter adpt = new SqlCeDataAdapter(strQuery, m_conn);
adpt.Fill(retDataSet);
m_conn.Close();
return retDataSet;
}
public DataSet SearchData(string strName)
{
DataSet retDataSet = new DataSet();
string strQuery;

// 사원 정보를 얻기위한 위한 SQL 쿼리 (* 인경우 모든 정보를 얻음)
if (strName == "*")
{
strQuery = "SELECT NAME, AGE, POSITION, PART, ENTERING FROM EMPLOYEE";
}
else
{
strQuery = "SELECT NAME, AGE, POSITION, PART, ENTERING FROM EMPLOYEE WHERE NAME = '" + strName + "'";
}

if (m_conn == null)
{
return null;
}

// 연결된 데이터베이스 Open
Open();

MySqlDataAdapter adpt = new MySqlDataAdapter(strQuery, m_conn);
adpt.Fill(retDataSet);
m_conn.Close();
return retDataSet;
}
맨 위로
팝업닫기

(주)에이치앤에스('http://hnsts.co.kr/'이하 '(주)에이치앤에스 웹사이트')는 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

(주)에이치앤에스 웹사이트는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은 2011년 4월 1일부터 시행됩니다.

1. 개인정보의 처리 목적 (주)에이치앤에스 웹사이트는 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적 이외의 용도로는
사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정 입니다.
가. 민원사무 처리
민원인의 신원 확인, 민원사항 확인, 사실조사를 위한 연락 · 통지, 처리결과 통보 등을 목적으로 개인정보를 처리합니다.
2. 개인정보 파일 현황
1. 개인정보 파일명 : 고객의 소리
  • - 개인정보 항목 : 이메일, 휴대전화번호, 자택전화번호, 이름, 서비스 이용 기록, 접속 로그, 쿠키, 접속 IP 정보
  • - 수집방법 : 웹사이트
  • - 보유근거 : 이용자 동의
  • - 보유기간 : 3년
3. 개인정보의 제3자 제공에 관한 사항
① (주)에이치앤에스 웹사이트는 원칙적으로 이용자의 개인정보를 제1조에서 명시한 목적 범위 내에서 처리하며, 본래의 범위를 초과하여 처리하거나 제3자에게 제공하지 않습니다.
다만, 다음의 경우에는 개인정보를 제3자에게 제공할 수 있습니다.
  • – 이용자가 사전에 제3자 제공 및 공개에 동의한 경우
  • – 법령 등에 의해 제공이 요구되는 경우
  • – 서비스의 제공에 관한 계약의 이행을 위하여 필요한 개인정보로서 경제적/기술적인 사유로 통상의 동의를 받는 것이 현저히 곤란한 경우
  • – 개인을 식별하기에 특정할 수 없는 상태로 가공하여 이용하는 경우
4. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다.
① 정보주체는 (주)에이치앤에스 웹사이트에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.
  • 1. 개인정보 열람요구
  • 2. 오류 등이 있을 경우 정정 요구
  • 3. 삭제요구
  • 4. 처리정지 요구
② 제1항에 따른 권리 행사는 (주)에이치앤에스 웹사이트에 대해 개인정보 보호법 시행규칙 별지 제8호 서식에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 (주)에이치앤에스 웹사이트는
이에 대해 지체 없이 조치하겠습니다.
③ 정보주체가 개인정보의 오류 등에 대한 정정 또는 삭제를 요구한 경우에는 (주)에이치앤에스 웹사이트는 정정 또는 삭제를 완료할 때까지 당해 개인정보를 이용하거나 제공하지 않습니다.
④ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을
제출하셔야 합니다.
5. 제3자에게의 개인정보 제공
① (주)에이치앤에스 웹사이트는 다음의 개인정보 항목을 처리하고 있습니다.
<민원사무 처리>
– 필수항목 : 이름, 휴대전화번호, 자택전화번호, 이메일, 서비스 이용 기록, 접속로그, 쿠키, 접속IP 정보
6. 개인정보의 파기
(주)에이치앤에스 웹사이트는 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.
  • –파기절차 이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.-파기기한이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.
  • –파기방법 전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다. 종이에 출력된 개인정보는 분쇄기로 분쇄하거나 소각을 통하여 파기합니다.
7. 개인정보의 안전성 확보 조치
(주)에이치앤에스 웹사이트는 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.
1. 정기적인 자체 감사 실시
개인정보 취급 관련 안정성 확보를 위해 정기적(분기 1회)으로 자체 감사를 실시하고 있습니다.
2. 개인정보 취급 직원의 최소화 및 교육
개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.
3. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.
4. 해킹 등에 대비한 기술적 대책
(주)에이치앤에스 웹사이트는 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에
시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.
5. 개인정보의 암호화
이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의
별도 보안기능을 사용하고 있습니다.
6. 접속기록의 보관 및 위변조 방지
개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.
7. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여
외부로부터의 무단 접근을 통제하고 있습니다.
8. 문서보안을 위한 잠금장치 사용
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.
9. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.
8. 개인정보 보호책임자 작성
① (주)에이치앤에스 웹사이트는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를
지정하고 있습니다.
▶ 개인정보 보호책임자
성명 : 김진효
소속 : (주)에이치앤에스
전화번호 : 02-6402-8001
이메일 : hns@hnsts.co.kr
② 정보주체께서는 (주)에이치앤에스 웹사이트의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및
담당부서로 문의하실 수 있습니다. (주)에이치앤에스 웹사이트는 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.
9. 개인정보침해 구제방법
정보주체는 개인정보침해로부터 구제받고자 하는 경우 다음과 같은 기관에 도움을 요청할 수 있습니다.
▶ 개인정보 침해신고센터 (한국인터넷진흥원 운영)
– 소관업무 : 개인정보 침해사실 신고, 상담 신청
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
▶ 개인정보 분쟁조정위원회 (한국인터넷진흥원 운영)
– 홈페이지 : privacy.kisa.or.kr
– 전화 : (국번없이) 118
– 주소 : (138-950) 서울시 송파구 중대로 135 한국인터넷진흥원 개인정보침해신고센터
10. 개인정보 처리방침 변경
① 이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할
것입니다.
팝업닫기

본 웹사이트에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반시 정보통신망법에 의해 형사처벌됨을 유념하시기 바랍니다.

게시일 : 2011.4.1