Найти - Пользователи
Полная версия: работа с SQLite3
Начало » Базы данных » работа с SQLite3
1
PythonRegius
Напейсал я вот такой скриптик “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
Подскажите, пожалуйста, где я не прав.
amigo
запятую пропустили
PythonRegius
Ок, вставил запятую. Теперь по-другому ругается:
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
Lexander
PythonRegius
STUFF.id may not be NULL
Переводчик не работает?
o7412369815963
добавь к “ид” автоинкремент при создании таблицы
PythonRegius
Спасибо, помогло.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB