Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2010 13:45:42

PythonRegius
От:
Зарегистрирован: 2010-07-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с SQLite3

Напейсал я вот такой скриптик “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
Подскажите, пожалуйста, где я не прав.



Офлайн

#2 Июль 13, 2010 14:40:51

amigo
От:
Зарегистрирован: 2010-06-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с SQLite3

запятую пропустили



Офлайн

#3 Июль 13, 2010 14:58:05

PythonRegius
От:
Зарегистрирован: 2010-07-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с SQLite3

Ок, вставил запятую. Теперь по-другому ругается:

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



Офлайн

#4 Июль 13, 2010 15:07:58

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

работа с SQLite3

PythonRegius
STUFF.id may not be NULL
Переводчик не работает?



Офлайн

#5 Июль 13, 2010 15:40:20

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

работа с SQLite3

добавь к “ид” автоинкремент при создании таблицы

Офлайн

#6 Июль 14, 2010 06:28:23

PythonRegius
От:
Зарегистрирован: 2010-07-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с SQLite3

Спасибо, помогло.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version