Найти - Пользователи
Полная версия: Python Database API
Начало » Базы данных » Python Database API
1
freezer
из спецификации
description
Этот атрибут только для чтения: последовательность последовательностей с 7 элементами. Каждая из этих последовательностей содержит информацию, описывающую один столбец результата: (name, type_code, display_size, internal_size, precision, scale, null_ok). Этот атрибут будет None для операций, которые не возвращают строки, или если курсор не имел операции, вызываемой через метод executeXXX().
Код type_code может интерпретироваться, сравнивая его с Type Objects


не понятно как это работает, например - firebirdsql
после select
 cursor.description
 [('N_FLOAT', 482, 17, 4, 17, 0, True), ('N_INTEGER', 496, 11, 4, 11, 0, True)]
rows[0]
(11.600000381469727, 1958)
вопрос что такое type_code - 482 496
freezer
все как и предполагал просто но не очевидно,
в спецификации
 class DBAPITypeObject:
  def __init__(self,*values):
    self.values = values
  def __cmp__(self,other):
    if other in self.values:
       return 0
    if other < self.values:
       return 1
    else:
      return -1
как реализовано в psycopg2
>>> print(psycopg2.NUMBER.values)
(20, 23, 21, 701, 700, 1700)
>>> print(cursor.description)
Column(name='id', type_code=23, display_size=None, internal_size=4, precision=None, scale=None, null_ok=None)
>>> print(psycopg2.NUMBER==23)
True
сравнение может использоваться для select с параметрами
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