Найти - Пользователи
Полная версия: Не могу сделать выборку из Firebird
Начало » Python для новичков » Не могу сделать выборку из Firebird
1
Suliman
Выполняю все по инструкции: http://fdb.readthedocs.org/en/latest/usage-guide.html
def checkfdbconnection():
	global db
	try:
		db = fdb.connect(dsn=gvar.dbhost, user=gvar.dbuser, password=gvar.dbpass)
		print "Connected to FireBird DB"
		try:
			cur = db.cursor()
			cur.execute("select CUSTOMER_NAME from CUSTOMER")			
			db.commit()
		except:
			print "ERROR"
	except:
		print "[ERROR] \t Could not connect ro FireBird DB"
checkfdbconnection()

Послу запуска получаю ошибку:
D:\Project\2014\archproject>test.py
Connected to FireBird DB
ERROR

Как понять в чем может быть ошибка?
FishHook
Suliman
Как понять в чем может быть ошибка?
Убери try-except, пусть ошибка сработает, в трейсбеке наверняка будет какая-то внятная информация.
Suliman
Спасибо, помогло я ошибся именем столбца в БД.
А как в Try Catch поймать эту ошибку? Чтобы она была более развернутой?
FishHook
import traceback
try:
    1 / 0
except ZeroDivisionError:
    traceback.print_exc()
Suliman
А как быть с выводом кириллицы на консоль?

Теперь выборка работает, но вместо русских букв вижу:
('\xcd\xd6 \xce\xcc\xc7',)
('\xce\xce\xce1',)
('\xce\xce\xce2',)
FishHook
Suliman, Вы уже год(!!!) питон мучаете, неужели до сих пор с PEP263 не ознакомились?
Suliman
FishHook
Я год назад тут только зарегился, а что-то учить начал только пару месяцев назад. Попробовал сделать:
print (row).encode('utf-8')
Но не помогло и на консоль теперь вообще ничего не выводится.

		db = fdb.connect(dsn=gvar.dbhost, user=gvar.dbuser, password=gvar.dbpass)
		print "Connected to FireBird DB"
		try:
			cur = db.cursor()
			cur.execute("select CUSTOMER_NAME from CUSTOMER")
			results = cur.fetchall()
			for row in results:
				print (row).encode('utf-8')
			db.commit()
			
		except:
			print "Can't create DB"

encode('utf-8') – непонятно, будет ли работать тут эта конструкция и какую сюда кодировку именно прописывать. Сама база у меня в win-1251
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB