помогите пожалуйста решить проблему с sqlite3 (может и не проблема вовсе а сам туплю)
Есть простейшая база созданная вот так:
import sqlite3 conn = sqlite3.connect('test.db') conn.execute('''CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);''') conn.close()
далее эта база заполнена простейшим примером вот так :
import sqlite3 conn = sqlite3.connect('test.db') conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (1, 'Paul', 32, 'California', 20000.00 )"); conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (2, 'Allen', 25, 'Texas', 15000.00 )"); conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )"); conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \ VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )"); conn.commit() conn.close()
Проблема состоит в том, что при попытке update или delete записи фактически удаления/апдейта не происходит. Например пытаюсь обновить записи вот таким простым примером:
import sqlite3 conn = sqlite3.connect('test.db') conn.execute("UPDATE COMPANY set NAME = 55555 where ID=4") conn.execute("UPDATE COMPANY set ADDRESS = 55555 where ID=4") conn.execute("UPDATE COMPANY set SALARY = 55555 where ID=4") conn.commit cursor = conn.execute("SELECT id, name, address, salary from COMPANY") for row in cursor: print "ID = ", row[0] print "NAME = ", row[1] print "ADDRESS = ", row[2] print "SALARY = ", row[3], "\n" conn.close()
Однако при чтении этой базы в следующий раз видно что никакие поля не обновились (см. 2.png)
Важно отметить, если я даю ровно те-же команды(UPDATE COMPANY set SALARY = 55555 where ID=4) но не из питона а из отдельной проги-менеджера по работе с sqlite3 (SQLiteManager), то происходит нормальное полноценное обновление базы.
Еще раз, кратко опишу суть - получается что python из sqlite3 не может DELETE или UPDATE базу SQLite3, при этом чтение/запись происходят нормально. И при этом эти-же команды DELETE или UPDATE выполненные из отдельного приложения SQLiteManager(hwww.sqlabs.com) работают нормально.
Помогите советом, уже целый день убил в попытках разобраться, уже не знаю куда и копать
Спасибо за любую наводку….
http://tsc-kupol.ru/1.PNG
http://tsc-kupol.ru/2.PNG