Форум сайта python.su
Напейсал я вот такой скриптик “DB.py”:
import sqlite3
import os
def create_db(dbname):
if os.path.exists(dbname):
print("\nWrong name for DB. Try again.\n")
return
else:
db=sqlite3.connect(dbname)
cursor=db.cursor()
cursor.execute("Create table STUFF( "
"id INTEGER NOT NULL , "
"firstname TEXT NOT NULL , "
"lastname TEXT NOT NULL , "
"position TEXT NOT NULL , "
"salary FLOAT NOT NULL )"
)
db.commit()
return db
def add_empl(db,fname,lname,pos,sal):
cursor=db.cursor()
cursor.execute("INSERT INTO STUFF "
"(firstname, lastname, position, salary) "
"VALUES (?, ?, ?, ?)"
(fname, lname, pos, sal))
db.commit()
from DB import *
db=create_db('dbname')
add_empl(db,'Ioann','Pupkin','programmist', 1000000)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "DB.py", line 25, in add_empl
(fname, lname, pos, sal))
TypeError: 'str' object is not callable
Офлайн
запятую пропустили
Офлайн
Ок, вставил запятую. Теперь по-другому ругается:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "DB.py", line 25, in add_empl
(fname, lname, pos, sal))
sqlite3.IntegrityError: STUFF.id may not be NULL
Офлайн
PythonRegiusПереводчик не работает?
STUFF.id may not be NULL
Офлайн
добавь к “ид” автоинкремент при создании таблицы
Офлайн
Спасибо, помогло.
Офлайн