Work

2월 4일 - Pocker PC 상에서 SQLCE를 ODBC 연결하기?

runicode 2010. 2. 7. 16:15

프로젝트에서 사용될 것인지 - 비교자룐가? 흠; 
Pocket PC 에뮬레이터상에서 돌아가는 간단히 구현된 프로그램에 ODBC를 연결하는 과제가 주어졌다.
선배가 적어준 기록을 보며 고민중.

- MS SQL Server CE
- PDA에 설치
- Application 제작 - ODBC로 MSSQL과 연결
- SQL 질의 입력, 결과 출력 가능한

VS 2005 SP1
PDA OS : Windows Mobile 5.0
CE Win32 API, MFC
SQL Anywhere 사이베이스


SQL Anywhere 사이베이스를 검색해보니
‘장소에 구애 받지 않고 자유로운 기업 정보 액서스를 제공하는 데이터 관리 및 엔터프라이즈 데이터 동기화 솔루션 패키지’
라고 나오는데...
대충, 무선 네트워크를 통해 본사 서버의 DB를 관리 할 수 있는 시스템이라는건가... 로 이해.
VS 2005 SP1과 Windows Mobile 5.0은 개발환경인듯.
그럼 일단 MS SQL Server CE를 설치하는게 급선무려나.
그런데 이건... 어디서 다운받는거지?


실컷 구글링과 게이버의 지식을 뒤적거려도 이해하기 힘든 용어들뿐이다.
적어도 처음 접하는 뉴비에게 친절히 ABC부터 가르쳐주는 데이터는 보이지 않았으니...
그런 중 MS의 커뮤니티에는 뭔가 정보가 있지 않을까 라는 생각으로 접속해보게 됐다.
다운로드에 Microsoft SQL Server 2005 Compact Edition이 보였다.

휴.

근데 관련파일이 한둘이 아니다.
일단 모조리 다운받고 보자는 심정으로 클릭클릭클릭.
다운 받은 파일들의 목록은 모두 5개.

Microsoft SQL Server 2005 Compact Edition
Microsoft SQL Server 2005 Compact Edition Server Tools
Microsoft SQL Server 2005 Compact Edition Developer SDK
Microsoft SQL Server 2005 Compact Edition Tools of VS 2005 SP1
SQL Server 2005 Compact Edition 온라인 설명서
ActiveSync 4.5 - 한국어

온라인 설명서는 http://technet.microsoft.com/ko-kr/library/ms130214(SQL.90).aspx을 도움말 프로그램으로 오픈한 형태.
깔긴 다 깔았는데... 새로생긴 바로가기도 도움말 하나뿐이고, 뭔가 좀 불안하고 어정쩡하다는 느낌만 든다.

근데 ODBC가 뭐더라?
...


ODBC(Open DataBase Connectivity)는 마이크로소프트사에 의해 만들어진, 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격으로, 각 데이터베이스의 차이는 ODBC 드라이버에 의해서 흡수되기 때문에 유저는 ODBC에 정해진 순서에 따라서 프로그램을 쓰면 접속처의 데이터베이스가 어떠한 데이터베이스 관리 시스템에 관리되고 있는지 의식할 필요 없이 접근할 수 있다.

라고 한다. - http://ko.wikipedia.org/wiki/ODBC
일단 SQL CE의 ODBC 설정법을 알아야 할 것 같은데...?
SQLCE ODBC라는 주제로 구글링을 하니 눈에 들어온 문구

sqlce인 sdf파일을 엑티브 싱크로 데스크탑으로 동기화 했을 경우 sdf파일을 열수 있을까요?
(ODBC나 특별 툴등으로..) 이거 하나 보자고, visual studio나 mssql 깔기는 너무 커서. ...


SQLCE로 만든 파일은 .sdf인가?
근데 sdf파일은 어떻게 만들지, 아니 그전에 SQL server 2005가 제대로 설치가 된건가.
아이콘이 너무 적은데...
MS 다운로드 사이트에 Microsoft SQL Server 2005 Express Edition 란게 보이긴 한다.
이게 맞을까?
주변에 수소문하던 중 MSSQL Server 2005 Enterprise Edition을 가진 사람을 찾았다. 이걸로 하자 +_+


인스톨 인스톨...

남는 시간에 C++ ODBC 연결법이나 좀 알아둘걸 그랬나.
제어판 - 관리도구 - 데이터 원본(ODBC) 인가?
뭐 일단 그런것 같고...


이제 설치는 끝났으니까 DB 파일 - sdf 파일이랬나, 이걸 만들면 되는건데...
어떻게 만들지 @_@?

http://search.naver.com/search.naver?sm=tab_hty&where=nexearch&query=sdf+%C6%C4%C0%CF%C0%BA+%BE%EE%B6%BB%B0%D4+%BB%FD%BC%BA%C0%BB+%C7%CF%B3%AA%BF%E4%3B%3B+%28%A4%D1%A4%D1%3B%3B%29+

카페 첫 번째 글 +_+ 다행히 상세하게 나온 예가 있었다니!
이제 파일을 만들기까진 했네. ODBC를 연결해볼까나...
전에 만든 파일은 취소.
뭔가 설정을 잘못했는지 테이블이건 엔티티건 편집이나 삽입이 안된다.
다른 방법이 있을까 보다보니 예제 파일인 Northwind.sdf를 발견.
이걸 예제로 ODBC를 연결해보자.
...
@_@

내가 알던 ODBC 연결 방법으로는 뭔가 안되는듯 한데.
검색해도 쥐뿔도 안나오고. ~_~; 복잡하다.
대신 검색된게 OLE DB?

ODBC 와 OLE 의 차이점
ODBC 는 Open Data Base Connectivity 라 하여, 데이터 소스에 연결하는 방법을 제공하는 표준 API 를 말한다. DB 에 접근하기 위해서는 DSN 을 이용한 SQL driver 혹은 기타 다른 driver 같은 것을 설치해야 한다. 대부분의 DBMS 들은 ODBC 를 지원한다.
OLE 는 Object Linking and Embedding 의 약어로서, OLEDB 는 흔히들 "automation"(자동화) 라고 말하는 OLE 와는 구분된다.
OLEDB 는 MS 에서 제공하는, ODBC 를 계승한 기술로서 VB 나 C++ 기반의 GUI 를 제공하는 "front end" 와 SQL Server, DB2, mySQL 등과 연결하는 "back end" 의 두 컴포넌트로 구성되어 있다. OLEDB 는 많은 경우 ODBC 보다 좋은 성능을 보여준다.
OLEDB 는 DSN driver 등을 설치할 필요가 없으며, VB 어플리케이션 개발에서 많이 이용되며 ADO 와 유사하다. 또한 SQL 7.0 에서 COM, DCOM 과 함께 동작한다.



이라는데.
일단 DSN드라이버를 설치할 필요가 없다는 점이 - 그렇다면 제어판 켜서 ODBC 설정 안해줘도 된다는건가?
아마 이건 소스코드로 직접 연결하는건가보다 싶은데.
뭔지 좀 알아봐야겠다. 이걸로라도 연결은 일단 해봐야지.

또 다른 선배한테 ODBC드라이버를 찾아봤느냐는 이야기를 들음.
고로 다시 구글링 뒤적뒤적

There is no ODBC driver and none is anticipated at this point. Basically,
you have two choices: the (somewhat limited) OLE DB interface or the SqlCe
managed provider.
See my ebook "Hitchhiker's Guide to SQL Server 2005 Compact Edition" for
detailed information on the ways to connect to the SQLCe engine.


이라는 답변을 들음. 다른 사람도 같은 답변일까?

다음날 MS에 전화해서 물어보니 SQLCE는 ODBC 드라이버가 없다는 답변을 들음.
결국 다른 방법을 강구해야 할듯.

OLE나 ADO를 이용할 것... 까지만 알아냈는데.
결과적으론 아웃풋이 하나도 없네 ㄱ-;;;;;;; 아악
GML 파싱먼저 하고 해야겠다 ㄱ-;;;