我正在研究一个从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()
答案 0 :(得分:1)
当你使用像这样的数据库时,很难说出问题是什么。您的查询未明确选择任何列,因此我们不知道您的表结构是什么,或列是什么类型。我怀疑表格格式不是您所期望的,或者columntype对您的数据不正确。
此外,您的代码甚至看起来都不会运行。你有“for row in rows:”然后不要缩进。也许发布您的架构?
答案 1 :(得分:0)
如果你使用freetds(我认为你是):在你的freetds.conf中搜索'text size'设置..标准为63 kb