在Python中连接到DB2

时间:2010-05-18 16:18:40

标签: python database db2

我正在尝试在python脚本中创建一个到我的DB2数据库的数据库连接。连接完成后,我将运行一些不同的SQL语句。

我搜索了问题并阅读了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)

但是我收到了错误。我真的尝试了所有的东西(或者,不是一切,但非常接近),我无法让它发挥作用。

我只需要制作一个自动测试python脚本,可以使用不同的索引测试不同的查询等等,为此我需要创建和删除索引。

希望有人有解决方案,或者可能知道我可以下载和学习的一些示例代码。

由于

Mestika

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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(*)FROM accounts”,这是问题所在,但我不知道如何修复它或放置什么。