Python:从MSSQL中检索图像

时间:2009-03-27 20:03:57

标签: python sql-server file-io

我正在研究一个从MSSQL中检索图像的Python项目。我的代码能够成功检索图像,但固定大小为63KB。如果图像大于该尺寸,它只会带来图像中的前63KB!

以下是我的代码:

#!/usr/bin/python
import _mssql

mssql=_mssql.connect('<ServerIP>','<UserID>','<Password>')
mssql.select_db('<Database>')

x=1
while x==1:
    query="select TOP 1 * from table;"
    if mssql.query(query):
        rows=mssql.fetch_array()
        rowNumbers = rows[0][1]
        #print "Number of rows fetched: " + str(rowNumbers)
        for row in rows:
        for i in range(rowNumbers):
            FILE=open('/home/images/' + str(row[2][i][1]) + '-' + str(row[2][i][2]).strip() + ' (' + str(row[2][i][0]) + ').jpg','wb')
            FILE.write(row[2][i][4])
            FILE.close()
            print 'Successfully downloaded image: ' + str(row[2][i][0]) + '\t' + str(row[2][i][2]).strip() + '\t' + str(row[2][i][1])
    else:
        print mssql.errmsg()
        print mssql.stdmsg()
mssql.close()

2 个答案:

答案 0 :(得分:1)

当你使用像这样的数据库时,很难说出问题是什么。您的查询未明确选择任何列,因此我们不知道您的表结构是什么,或列是什么类型。我怀疑表格格式不是您所期望的,或者columntype对您的数据不正确。

此外,您的代码甚至看起来都不会运行。你有“for row in rows:”然后不要缩进。也许发布您的架构?

答案 1 :(得分:0)

如果你使用freetds(我认为你是):在你的freetds.conf中搜索'text size'设置..标准为63 kb