Подключение к DB2 в Python - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь создать соединение базы данных в скрипте python с моей базой данных DB2. Когда соединение установлено, я должен запустить несколько других операторов SQL.

Я погуглил проблему и прочитал API ibm_db (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 ]

3 голосов
/ 18 мая 2010

должно быть:

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 голосов
/ 18 мая 2010

Извините, потому что вам нужно сообщение об ошибке. При попытке запустить мой скрипт выдает следующую ошибку:

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", но я понятия не имею, как это исправить или что поставить на его место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...