2009-03-27 17 views
2

私はMSSQLから画像を取得するPythonプロジェクトに取り組んでいます。私のコードは63KBの固定サイズで画像を正常に取り出すことができます。画像がそのサイズより大きければ、それは画像から最初の63KBを取得するだけです!Python:MSSQLから画像を取得

次は私のコードです:

#!/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

画像を格納する列のデータ型が何であるのその標準「テキストサイズ」のごfreetds.confでの検索設定...を? – kquinn

答えて

1

それはあなたがこのようなデータベースを使用しているときに問題が何であるかを伝えるのは難しいのようなものです。クエリで明示的に列が選択されていないため、テーブル構造が何であるか、列の種類はわかりません。私はテーブルのフォーマットがあなたが期待しているものではないと思う、またはあなたのデータのためにcolumntypeが間違っています。

また、あなたのコードは実行されるようにも見えません。あなたは "for row in:"を持っていて、その後はインデントしません。たぶんあなたのスキーマを投稿しますか?

+0

こんにちは、お返事ありがとうございましたchmod700 .. "Image"データ型フィールドを使用しています。これは私がコードの行に使用しているフィールドです: FILE.write(row [2] [i] [4]) MS SQLサーバーとの接続が疑わしいので、pyODBCを使用しましたが、同じ問題が発生しました。何か案は? –

0

あなたは(私はあなたがいると思う)FreeTDSのを使用している場合:63キロバイト

関連する問題