database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 23530 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 23530
SAPDB PYTHON Interface 사용기
작성자
남녀평등(linux199)
작성일
2002-12-04 08:31
조회수
10,567

Python에서 SAPDB에 접속해 보자

우선 Python과 SAPDB를 연동시키려면 sapdb-scriptif-7.4.3.7beta-1.i386.rpm 를 설치해야 한다

그래서 위의 파일을 다운 받아 설치해 보니 제대로 실행이 되지 않았다

RPM 설치후 Python 모듈이 설치된 디렉토리로 이동을 해서 실행을 해보니 아래와 같은 에러메세지가 나왔다

 

[sapdb@hancom misc]$ cd /opt/sapdb/interfaces/python/misc/

[sapdb@hancom misc]# python

Python 2.2.1 (#1, Oct 17 2002, 17:14:47)

[GCC 3.2 (Hancom Linux-1hl)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import sapdb

>>> con = sapdb.connect('TEST' ,'TEST', 'TST')

sapdb/sql.py:28: RuntimeWarning: Python C API version mismatch for module sql: This Python has API version 1011, module sql has version 1007.

from pythondef.sql import *

>>>

 

무슨 API 버젼이 안 맞다고 하는데 하여튼 해결해 보도록 하자

혹시나 RPM 패키징의 문제가 있는가 하여 sapdb.org 사이트에서 RPM이 아닌 바이너리 압축된 파일을 찾아보았지만 찾을 수가 없었다

7.4beta의 경우 download 페이지에서 따로 Python용 파일을 제공하는게 없었다

혹시나 하는 마음에 7.3 버젼 페이지를 뒤져보니 역시나 파일이 있었다

웬지 잘 될듯한 마음이 들어 그 파일을 다운받아 설치해 보니 잘 되었다

 

이제 이 파일로 설치를 해보도록 하자

 

우선 sapdb-python-linux-i386-7.3.00.29.tgz 파일을 http://sapdb.org/sap_db_downloads.htm 페이지에서 다운 받도록 하자

 

그 후 적당한 디렉토리를 하나 만들고 그 안에서 다운받은 파일의 압축을 해제한다

그러면 몇개의 py 파일과 python15, python20, python21, python22 등의 디렉토리가 생길것이다

우선 Python에서 sapdb에 접속이 되나 테스트 해보자

압축을 해제한 바로 그 디렉토리에서 python을 실행시켜서 sapdb 모듈을 읽어서 DB에 접속해 보자

아래와 같이 에러가 나지 않는다면 제대로 된 것이다

여기서 주의할 점은 connect 메소드의 각 값은 대문자로 써야 된다는 것이다 (앞에서부터 차례로 사용자, 패스워드, DB명 이다)

밑의 예에서는 demo db의 내용을 가지고 테스트 하였다.

 

[sapdb@hancom test]# python

Python 2.2.1 (#1, Oct 17 2002, 17:14:47)

[GCC 3.2 (Hancom Linux-1hl)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import sapdb

>>> conn = sapdb.connect('TEST', 'TEST', 'TST')

>>> conn.release()

>>>

 

어쨌거나 이제 python에서 DB에 접속할 수 있다는 것이 확인되었다.

이제 이 임시로 풀어놓은 파일들을 늘 접속이 용이하도록 만들어야 겠다.

 

방법은 여러가지가 있다.

첫번째로는 그냥 이 파일을을 Python 프로그램 모듈이 있는 site-packages 디렉토리로 복사해 버리는 방법이 있고

두번째로는 현재의 디렉토리를 PYTHONPATH 환경변수에 추가시켜 주어도 된다

 

난 그냥 편하게 첫번째 방법을 택했다

 

나의 리눅스 머신에는 python이 RPM으로 설치가 되어있어서 site-packages 디렉토리는 /usr/lib/python2.2/site-packages 에 위치하고 있었다

그래서 이 파일들을 모두 그곳으로 복사했다 (원래는 해당 python 버젼에 맞는 디렉토리만 복사해도 된다)

 

[sapdb@hancom test]# cp -rf * /usr/lib/python2.2/site-packages/

 

자 이제 어느 곳에서나 python을 통해서 SAPDB에 접근할 수 있도록 되었다.

이제 간단한 프로그램을 짜보도록 하자

 

※ 아래에서 for 문 밑의 ____ 는 공백을 나타내려고 한 것이다 ____는 공백 4칸으로 교체해서 입력하자.

 

 

import sapdb

 

conn = sapdb.connect('TEST', 'TEST', 'TST')

 

result = conn.sql('select * from users')

 

for row in result:

____print row

 

conn.release()

 

위와 같이 입력한 내용을 test.py로 저장하자

 

그 후 아래와 같이 실행해 보자

 

[sapdb@hancom python]$ python test.py

(u'DBA', u'', u'DBA', u'SYSDBA', None, None, None, None, u'DEFAULT', '20021203', '00140159', '20021203', '00140159', None, None, u'TST', u'hancom', 10, None)

(u'DBA', u'', u'DOMAIN', u'DBA', None, None, None, None, u'DEFAULT', '20021203', '00140159', '20021203', '00140200', None, None, u'TST', u'hancom', 11, None)

(u'DBA', u'', u'SYS', u'DBA', None, None, None, None, u'DEFAULT', '20021203', '00140202', '20021203', '00140202', None, None, u'TST', u'hancom', 12, None)

(u'DBA', u'', u'TEST', u'DBA', u'MULTIPLE', None, None, None, u'DEFAULT', '20021203', '00140214', '20021203', '00140214', '20021203', '00140214', u'TST', u'hancom', 13, None)

(u'DBA', u'', u'DBM', u'ADMIN', None, None, None, None, u'DEFAULT', '20021203', '00140159', '20021203', '00140159', None, None, u'TST', u'hancom', 0, None)

 

위처럼 나온다면 제대로 실행된 것이다

이제 Python으로 SAPDB에 접근할 수 있게 된 것이다.

 

각 모듈의 메소드 등에 대한 설명은 http://sapdb.org/sap_db_program.htm 의 Python 란을 참조하면 된다. 예제도 몇개 들어있다.

[Top]
No.
제목
작성자
작성일
조회
23533SAPDB + JSP(PHP)를 이용한 간단한 페이징 팁
신정호
2002-12-04
18809
23532SAPDB PYTHON에서 SAPDBAPI를 이용한 접속
남녀평등
2002-12-04
13793
23531SAPDB Precompiler를 이용한 간단한 사용자 관리 예제 프로그램
남녀평등
2002-12-04
12655
23530SAPDB PYTHON Interface 사용기
남녀평등
2002-12-04
10567
23529SAPDB ODBC 사용기
남녀평등
2002-12-04
11941
23528SAPDB Precompiler 사용기
남녀평등
2002-12-04
9513
23527SAPDB 설치 + 사용기
남녀평등
2002-12-04
10322
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다