Найти - Пользователи
Полная версия: psycopg2 и спец. символы
Начало » Базы данных » psycopg2 и спец. символы
1
vak
Похоже “наступил на грабли”. Не корректно отрабатывает psycopg2 спец. символы (например %). Каким образом лучше их экранировать (как это сейчас народ делает)? Возможно в самом psycopg2 есть такой стандартный механизм? Подскажите плиз, кто в теме.
PooH
пример некорректной работы покажите
vak
Вот код

def     NewD(user_kod,contragent,tema,text):
    user_kod = user_kod.encode("utf-8")
    contragent = contragent.encode("utf-8")
    tema = tema.encode("utf-8")
    text = text.encode("utf-8")
    cursor = connections['default'].cursor()
    cursor.execute("SELECT t_NewD('%s','%s','%s','%s');" % (user_kod,contragent,tema,text))
    transaction.commit_unless_managed()
    data = cursor.fetchone()
    return data[0]

Картинку с ошибкой прилагаю.
vak
Вот еще ручками:

>>> NewD('','%','%','%')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/opt/kis/kis/lib/contract.py", line 81, in NewD
    cursor.execute("SELECT t_NewD('%s','%s','%s','%s');" % (user_kod,contragent,tema,text))
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/util.py", line 41, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 54, in execute
    return self.cursor.execute(query, args)
IndexError: tuple index out of range
vak
PooH
http://python.su/forum/topic/22574/?page=1#post-116842


Спасибо, сейчас работает.
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