FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird 팁&트릭
[16] ASP와 FireBird의 연동 (초급자용)
현기웅 [euroeaster] 11742 읽음    2006-02-16 15:03
저희 회사 CS개발팀에서 개발한 프로그램과 웹을 연동시키기 위한 프로젝트를
진행하게 되었습니다.
델파이로 개발한 프로그램인데 무료로 사용할수 있고 프로그램 인스톨시 DB를 같이 감아서
배포 가능한 DB로 파이어버드(이하 FB)를 사용했더군요.

FB 데이터를 웹으로 끌어내주기 위해 FB 기술사이트를 이곳저곳 방문했죠.
PHP는 조금 있는것 같은데 ASP 스크립트언어와 FB 연동에 대한 자료 찾기가 쉽지 않더군요.
그래서 제가 연동시킨것을 조금 정리해서 올려봅니다.

처음에는 2.0 베타를 해보려고 했는데 드라이버들이 1.5기준으로 하는게 안정적인것 같아서
일단 1.5로 시도했습니다.

일단 FB설치는 어렵지 않았습니다.
OS는 Win XP Pro, 스크립트 언어는 ASP
FB 버젼은 Firebird-1.5.3.4870-0-Win32.exe

FB를 설치하고 별다른 설정하지 않았습니다.
FB 설치이후에 한 작업은 GDB(인터베이스 DB), FDB(파이어버드 DB)를 관리할 수 있는
관리툴을 설치한 것입니다.
제가 사용했던 것들은 인터베이스 관리콘솔인 ibconsole_1.1.0.24과 ibep_2006.1.29.1_full.exe(ib 익스퍼트)
두개를 사용해봤습니다.
일단 관리툴에 대한건 여기서 제외하고요.
연동만 다루겠습니다.
관리콘솔을 통해서 일단 DB를 하나 생성하고 테이블을 하나 생성했습니다. 데이터도 조금 넣구요.
전 ibconsole에서 작업했는데요. 이곳에서 SYSDBA를 사용하지 않고 새로운 계정을 생성하여
만든 DB의 커넥션을 생성한 계정이 사용하도록 설정했죠.

------------------------------------------------------------------------------------
ODBC, OLEDB 연결은 리모트 연결입니다. (로컬이 아닌 아이피/원격서버)
------------------------------------------------------------------------------------
1. ODBC
================================================================
================================================================
그 다음 ODBC를 통해서 연결해봤습니다.
ODBC는 Firebird_ODBC_1.2.0.69-Win32.exe 를 설치했습니다.
파일을 인스톨하니 ODBC에서 데이터원본 추가하는 부분에 Firebird/InterBase(r) driver가 생겼더군요.
아. 인터베이스나 파이어버드라는 것에 생소하게 되면 파이어버드는 머고 인터베이스는 머지?
라는 첫 의문이 생기는데.. 여기저기 문서들 뒤지면 볼랜드 역사에서 해당 내용이 나옵니다.
굳이 간단하게 말하면 파이어버드는 인터베이스의 자식이라고 하면 될것 같습니다.
인터베이스를 기반으로 나온게 파이어버드라고 하더군요.

ODBC 추가에서 DSN을 FBCON으로 설정하고
데이타베이스는 C:\FB_DATA\AC.FDB  <-- C에 FB_DATA라는 폴더를 만들고 ibconsol에서 생성디비의 루트 디렉터리를 여기로 잡았습니다.

그 밑에 클라이언트 항목은 C:\WINDOWS\system32\fbclient.dll <-- 만일 fbclient.dll 가 없으면
파이어버드 설치 폴더의 bin 폴더에 가면 있으니 복사해서 사용해도 되고, 항목의 루트를 bin으로
잡아도 될지 모르겠습니다. (한번해보세요. 전 system32로 했습니다.)
그리고 계정 ID와 PASSWORD를 넣구요. ROLE은 안넣어도 되더군요.
캐릭터셋은 일단 NONE으로 설정. 그리고 TEST를 하니 성공.

소스는...
Set dbCon = Server.CreateObject("ADODB.Connection")
dbCon.Open ("DSN=FBCON; UID=아이디; PWD=패스워드; DBNAME=127.0.0.1:C:\FB_DATA\AC.FDB;")
SQL = "SELECT * FROM AAA"
Set rs = dbCon.Execute(SQL)
   
DO UNTIL rs.EOF
     Response.Write rs(0) & "  //  "
     Response.Write rs(1) & "  //  "
rs.MoveNext
LOOP

좀 이상한건 DBNAME을 꼭 저렇게 해줘야했었다는겁니다. 보통 ODBC 연결할때는 DSN만 잡으면 되었는데
몇번 시도해봤지만 안되더군요.
파이어버드 ODBC를 설치한 폴더에 가보면 html 폴더가 있는데 그곳에 ConnectionExamples.htm라는
문서를 보면 연결 방식들이 있긴 합니다.


2. OLEDB
================================================================
================================================================
그 다음에 OLEDB로 한번 연결해봤습니다.
메타데이타 파일로 C:\Program Files\Common Files\System\ado\msado15.dll 참조시킵니다.
이건 아시죠? 보통 adovbs.inc를 인클루드 시키기도 하는데 저는 위의 형식으로 합니다.
그런데 없어도 됩니다. ㅋ.
외부컴퍼넌트라서 프로바이더만 잘 잡아주면 ADO 파일 참조 안해도 되더군요.
컴퍼넌트는 http://www.zstyle.dp.ua/eng/iboledb_prod.htm 이곳에서 받았습니다.
Free Version 5 라는 부분을 클릭하면 다운로드 됩니다.
받은 압축파일을 풀고, 해당 폴더안의 ibolereg.bat를 실행하면 그 안의 IBOLE.dll 이 등록됩니다.
regsvr32 로 직접 등록해도 되구요.
등록하고나서 한참을 해맸는데요. 제 개발PC가 워낙에 설치된게 있어서 그런지도 모르겠지만.
재부팅을 하고나서야 인식되었습니다.

소스는...
Server_SRC = "127.0.0.1:C:\FB_DATA\AC.FDB"   
sConnStr = "Provider=ZStyle IBOLE Provider;Password=암호;SQL Dialect=3;User ID=아이디; Logging Level=0;Silent mode=True;Data Source=" & Server_SRC
   
set dbCon = Server.CreateObject("ADODB.Connection")
dbCon.Open sConnStr   
   
SQL = "SELECT * FROM AAA"
Set rs = dbCon.Execute(SQL)   
     Response.Write rs(0) & "  //  "
     Response.Write rs(1) & "  //  "   
dbCon.Close
Set dbCon = Nothing

여기까지가 제가 해본 연결방법입니다.
물론 각기 다른 방법 또는 다른 파일을 이용해서 할수도 있습니다.
이곳 포럼에 이와 같은 내용을 찾기가 힘들어서 올립니다.
김영진 [ychinkim]   2006-04-30 10:39 X
가믐에 단비입니다. 난 정말초보인데,  C#에서 연결방법으로 하나 더 올려 주시면
사막에 오아시스입니다.  꼭, 꼭,...
현기웅 [euroeaster]   2006-05-01 17:55 X
C# 써본지가 오래되었고, 파이어버드는 연동해본적이 없습니다.
여기보다는 C# 강좌 사이트를 방문하심이 더 좋을듯하네요.
도움이 못되서 미안합니다.

+ -

관련 글 리스트
16 ASP와 FireBird의 연동 (초급자용) 현기웅 11742 2006/02/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.