앞으로 코드를 올릴 때,
Javascript가 적용되어, 가독성 좋은 코드가 펼쳐지게 된다.(참고 : http://isakaone.blogspot.kr/2011/11/bloggercom-syntax-highlight.html )## 이 안에 코드텍스트를 그대로 붙여넣기만 하면,
pymssql, py2exe 모듈은 아래의 링크에서 exe로 만들어진 배포본을
다운받아 윈도우에서 간편하게 설치가능하다.
(http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql)
※ pymssql 구글코드(http://code.google.com/p/pymssql/)
※ py2exe 사용법 포스트(http://soooprmx.com/wp/archives/976)
import pymssql, time with open('SQLfetcher.ini') as f: cfg = f.readlines() Provider = cfg[0].split('=')[1].strip() DataSource = cfg[1].split('=')[1].strip() InitialCatalog = cfg[2].split('=')[1].strip() UserId = cfg[3].split('=')[1].strip() Password = cfg[4].split('=')[1].strip() SQLscript = cfg[5].split(':')[1].strip() DelaySeconds = cfg[6].split('=')[1].strip() Sec = int(DelaySeconds) print "Provider = " +Provider print "DataSource = " +DataSource print "InitialCatalog = " +InitialCatalog print "UserId = " +UserId print "Password = " +Password print "SQLscript = " +SQLscript loop = 1 while True: print '\nRunning count : ' + str(loop) con = pymssql.connect(host=DataSource, user=UserId, password=Password, database=InitialCatalog) cur = con.cursor() cur.execute(SQLscript) filename = time.strftime("%Y%m%d-%H%M%S") dataset = cur.fetchall() output = open(filename + '.txt','w') for data in dataset: i = data[0] output.write(i + '\n') con.close() print 'And Waiting ' + DelaySeconds + ' seconds...' time.sleep(Sec) loop += 1
간단하게 mssql 서버에서 필요한 내용을 긁어오는 프로그램으로, 서버정보와 sql쿼리명령문은 ini파일에서 읽어오도록 하였고, 별도로 에러처리는 하지 않았다
Ini파일에서 SQLscript 를 분리해 낼 때, SQL문에 이퀄(=)이 들어갈 수 있음을 고려하지 않은 실수가 있었다. (=)->(:)으로 수정
파이썬코드를 exe로 변환하기 위해 같은 폴더에 setup.py를 만들고 아래의 코드를 적어넣었는데, 특이한 점은 추가되는 모듈에 pymssql만 넣으면 안되고, "_mssql", "decimal", "uuid"를 넣어주어야 한다는 것
from distutils.core import setup import py2exe, sys sys.argv.append("py2exe") setup(console=["SQLfetcher.py"], options={ "py2exe":{ "packages" : ["pymssql", "_mssql", "decimal", "uuid",], "bundle_files":1, "optimize":2, "dll_excludes": ["w9xpopen.exe"], } }, zipfile = None )
이 포스트를 쓰기 전까지의 '나'는 다른 프로그래머들의 지적생산물을 소비하기만 해왔는데, 지금 이 포스트를 시작으로 내가 뭔가를 생산해내어 공유하는 것 같아 보람이 느껴지려고 한다. 물론 많이 미숙하긴 하지만...
댓글 없음:
댓글 쓰기