想写个连接数据库类 请赐教

想写个连接数据库类 请赐教

本人想写个连接数据库的类:连接的字符串和查询的SQL语句可以入参控制
import pymssql
class db():
    def __init__(self, linkseverstr,sqlstr):
            self.sqlstr = sqlstr
            self.linkseverstr=linkseverstr
    def  querydatalist(self,sqlstr):
             connection = pymssql.connect( self.linkseverstr)
             cursor = connection.cursor()
             cursor.execute(sqlstr)
             data = cursor.fetchall()
             if name in data:
                 print r"%s" % name
             cursor.close()
a="host='192.168.0.199', user='sa',password='', database='TEST08' "
b='select name from TEST '
p=db(a,b)
p.querydatalist(b)

--总是提示TEST08不存在  实际上在SQL里面存在的。不晓得错在什么地方。
请高手指点

Traceback (most recent call last):

  File "C:\Python25\Lib\site-packages\pymssql.py", line 126, in execute
    self.executemany(operation, (params,))
  File "C:\Python25\Lib\site-packages\pymssql.py", line 152, in executemany
    raise DatabaseError, "internal error: %s" % self.__source.errmsg()
DatabaseError: internal error: SQL Server message 208, severity 16, state 1, line 1:
对象名 ‘TEST08’无效。
DB-Lib error message 10007, severity 5:
General SQL Server error: Check messages from the SQL Server.

class db():
该类不继承其它的类,为什么要打()
pymssql.connect  接收dictionary 变量

>>> a="host='192.168.0.199', user='sa',password='', database='TEST08' "

>>> print a
host='192.168.0.199', user='sa',password='', database='TEST08'

>>> def testConnect(**doc):
        for (keys, values) in doc.items():
                print keys, values

>>> testConnect(host='192.168.0.199', user='sa',password='', database='TEST08')
host 192.168.0.199
password
user sa
database TEST08

>>> testConnect(a)

Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    testConnect(a)
TypeError: testConnect() takes exactly 0 arguments (1 given)
# -*- coding: cp936 -*-
#code DK 2008-04-08

import pymssql

class Dbconnect():
    def __init__(self,sqlstr):
        connection = pymssql.connect(host='PC-03241250', user='sa',password='', database='THIS4_08')
        #固定格式 无法修改
        cursor = connection.cursor()
        cursor.execute(sqlstr)
        self.data = cursor.fetchall()
        self.fields = cursor.description
        cursor.close()

sqlstr='select id,name from YY_SFDXMK '
db=Dbconnect(sqlstr)
for f in db.data:
    print r'id= %s | name=%s' % (f[0],f[1])
修改以后的数据库连接类:
支持sqlstr语句动态查询。但是数据库连接参数不能做到动态控制;在网上找了许久没有好的方法:
# -*- coding: cp936 -*-
import pymssql

class Dbconnect():
    def __init__(self,host,user,password,database,sqlstr):
        self.host=host
        self.user=user
        self.password=password
        self.database=database
        self.sqlstr=sqlstr
        connection = pymssql.connect(host=self.host,user=self.user,password=self.password,database=self.database)
        #固定格式 无法修改
        #print self.link
        cursor = connection.cursor()
        cursor.execute(self.sqlstr)
        self.data = cursor.fetchall()
        self.fields = cursor.description
        cursor.close()
host='PC-03241250'
user='sa'
password=''
database='THIS4_08'
sqlstr='select id,name from YY_SFDXMK '
db=Dbconnect(host,user,password,database,sqlstr)
for f in db.data:
    print r'id= %s | name=%s' % (f[0],f[1])

--测试OK
用字典有些复杂 还是直接用变量传入算了。连接字符大不了再用解密函数处理下