Я работаю над сценарием Python (Python версии 2.5.1 для Windows XP), который включает подключение к базе данных Microsoft Access (.mdb) для чтения значений из таблицы.Я получаю некоторые неожиданные результаты с одной записью, в результате чего поле интереса округляется.
Я знаю, что поле "Таблица доступа" представляет собой тип данных Double.Но значение, которое заставило меня обнаружить это в таблице, составляет 1107901035.43948.Когда я читаю значение в коде Python и распечатываю его, оно показывает 1107901035.44.
Есть ли параметр соединения pyODBC или другой, который должен быть установлен?Я не смог найти ничего в документации
Вот как выглядит мой код (цель состоит в том, чтобы разрешить ненужные записи, идентифицировав запись, которая имеет наибольшее значение для моей области интересов):
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + pGDB)
conn.autocommit = True
cursor = conn.cursor()
tableList = []
for x in cursor.tables():
val = str(x[2])
if val[0:3] <> "MSy":
if val[0:3] <> "GDB":
if val[-5:] <> "Index":
tableList.append(val)
for x in tableList:
try:
SQL = "SELECT * FROM %s" % (x)
cursor.execute(SQL)
rows = cursor.fetchall()
counter = 0
for row in rows:
counter +=1
if counter > 1:
print "Site %s is a multipart basin" % (x)
SQL = "SELECT MAX(Shape_Area) AS AREA FROM %s" % (x)
cursor.execute(SQL)
row = cursor.fetchone()
val = row.AREA
print str(val)
SQL = "DELETE * FROM %s WHERE Shape_Area < %s" % (x, val)
cursor.execute(SQL)
спасибо, Том