en Python 2.6.5 avec sqlite3.version 2.4.1, j'utiliser le code suivant:Pourquoi Sqlite ne me dit-il pas qu'une telle colonne existe quand je l'ai clairement créée?
c = conn.cursor()
# Create table
c.execute('''create table stocks
(date text, trans text, symbol text,
qty real, price real)''')
# Insert a row of data
c.execute("""insert into stocks
values ('2006-01-05','BUY','RHAT',100,35.14)""")
# Save (commit) the changes
conn.commit()
c.execute('''insert into stocks values(date=?, trans=?, symbol=?, qty=?, price=?
)''', ('08-26-1984', 'SELL', 'GOGL', 3, 400.00))
# We can also close the cursor
if we are done with it
c.close()
Et il renvoie une erreur:
Traceback (most recent call last):
File "dbtest.py", line 18, in <module>
c.execute('''insert into stocks values(date=?, trans=?, symbol=?, qty=?, price=?)''', ('08-26-1984', 'SELL', 'GOGL', 3, 400.00))
sqlite3.OperationalError: no such column: date
Ma question - ce que le diable ??? J'ai créé une colonne avec le nom "date"! J'ai passé les deux dernières heures à essayer de comprendre ce qui ne va pas dans le monde et je suis vraiment frustré. Aussi, lorsque je tente de l'ouvrir par la ligne de commande, on me dit:
Unable to open database "orders": file is encrypted or is not a database
Toute aide serait grandement apprécié que je suis sur le point de mettre mon ordinateur à travers un mur.
Merci!
En règle générale, il est une mauvaise idée de donner une colonne un nom qui correspond à un mot-clé dans la base de données soit votre ou dans la langue que vous utilisez pour écrire. Je ne pense pas que ce soit votre problème ici, mais à l'avenir nommer une colonne «date» vous mordra probablement quelque part. –
C'est un conseil utile - je viens de tirer l'exemple de code de création de [ici] (http://docs.python.org/library/sqlite3.html). –