Использование "Ключа" с подключением adodbapi к MS Access

У меня есть код, который ссылается на Access и прекрасно работает с adodbapi, за исключением одной проблемы, которую я не могу решить. По сути, я хочу создать новую таблицу в Access с заголовками столбцов "Ключ" и "Значение", но, похоже, она не будет работать, если я не добавлю запятые, которые мне не нужны. Я получаю следующую ошибку:

adodbapi.adodbapi.DatabaseError: (-2147352567, "Возникло исключение.", (0, u'Microsoft JET Database Engine', ошибка синтаксиса u в определении поля.', Нет, 5003292, -2147217900), Нет)

import adodbapi

# create the DSN execution string and point it to the desired Database
database = 'D:\Temp.mdb' 
constr = 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s '  % database
conn = adodbapi.connect(constr)

# create a cursor
cur = conn.cursor()
# below doesnt work
cur.execute('CREATE TABLE OtherInfo(Key VARCHAR(100), Value VARCHAR(100))')  
# but this does
cur.execute('CREATE TABLE OtherInfo(Key2 VARCHAR(100), Value2 VARCHAR(100))')  
# so does this
cur.execute('CREATE TABLE OtherInfo('Key' VARCHAR(100), 'Value' VARCHAR(100))') 

# this also fails unless similar to above
cur.execute("INSERT INTO OtherInfo(Key,Value) VALUES('AppName','XXX')")

# close the cursor and connection
conn.commit()       # this saves all of the changes made above
cur.close()
conn.close()

Как я могу сделать так, чтобы он вставлял заголовки столбцов и данные как {Key, Value}, не прибегая к "Key" и т. Д., Поскольку программа, которая использует эту таблицу, не может ссылаться на другие имена?

Спасибо за любую помощь.

1 ответ

Решение

Разобрался, для работы нужен [обертка], как показано ниже:

cur.execute('CREATE TABLE OtherInfo([Key] VARCHAR(100), [Value] VARCHAR(100))') 

Спасибо всем, кто взял на себя труд посмотреть.

Другие вопросы по тегам