2010-05-18 5 views
0

python 스크립트로 DB2 데이터베이스에 데이터베이스 연결을 만들려고합니다. 연결이 완료되면 다른 SQL 문을 실행해야합니다.Python에서 DB2에 연결

나는 문제를 봤는데 ibm_db API (http://code.google.com/p/ibm-db/wiki/APIs)를 읽었지만 올바르게 이해할 수없는 것 같습니다. 여기

는 내가 지금까지 무엇을 가지고 있습니다 :

import sys 
import getopt 
import timeit 
import multiprocessing 
import random 
import os 
import re 
import ibm_db 
import time 
from string import maketrans 

query_str = None 

conn = ibm_db.pconnect("dsn=write","usrname","secret") 
query_stmt = ibm_db.prepare(conn, query_str) 
ibm_db.execute(query_stmt, "SELECT COUNT(*) FROM accounts") 
result = ibm_db.fetch_assoc() 
print result 
status = ibm_db.close(conn) 

하지만 오류가 발생합니다. 나는 모든 것을 시도했다. (거의 모든 것을 제외하고는 좋았지 만) 제대로 작동하지 못했다.

다른 인덱스를 사용하여 다른 쿼리를 테스트 할 수있는 자동 테스트 파이썬 스크립트를 만들어야하고, 인덱스 작성 및 삭제 작업이 오래 걸릴 수 있습니다.

누군가가 해결책을 갖고 있거나 거기에 몇 가지 예제 코드에 대해 알고 있으면서도 다운로드하고 공부할 수 있기를 바랍니다.

감사

Mestika

+1

? 실제로 "효과가 없다"는 것을 더 설명하면 도움이 될 것입니다. –

답변

3

이 있어야한다 : 어떻게됩니까

query_str = "SELECT COUNT(*) FROM accounts" 

conn = ibm_db.pconnect("dsn=write","usrname","secret") 
query_stmt = ibm_db.prepare(conn, query_str) 
ibm_db.execute(query_stmt) 
+0

SilentGhost 정말 고마워요. 매력처럼 작동합니다! 방금 내 주를 저장했습니다 :-) – Mestika

0

당신이 메시지를 오류 필요가 원인의 나는, 미안 해요. 내 스크립트를 실행하려고 할 때 그것은 나에게이 오류 제공 :

Traceback (most recent call last): 
    File "test.py", line 16, in <module> 
    ibm_db.execute(query_stmt, "SELECT COUNT(*) FROM accounts") 
Exception: Param is not a tuple 

나는 그것이 문제입니다 "계정에서 SELECT COUNT (*)"내 매개 변수임을 확신 해요,하지만 난 방법을 몰라 그것을 고정 시키거나 그 자리에 무엇을 넣을 것인가.

+0

작은 따옴표를 사용해보십시오. 작동하지 않을 수도 있습니다. – user3754136

관련 문제