Форум сайта python.su
Здарвствуйте, все!
Мне необходимо вставлять в базу Null значения
Прочитал (в каком-то мануале в интернете), что для этого нужно использовать None. Я понял это следующим образом
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(None)""")
Офлайн
может так попробовать:
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(?)""", (None,))
Офлайн
pyuser, я попробовал, так как Вы советовали. Кроме того хочу узнать, было ли это предположение или этот код у Вас работал и откуда Вы его взяли? Потому, что я не ничего не знаю о подобном спецификаторе ? и кроме того запятая в части выражения (?)“”",( очень удивляет, потому что на ее месте обычно стоит оператор %
Я попробовал следующие варианты:
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(?)""", (None,))
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(?)"""% (None,))
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(%s)"""% (None,))
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(%s)""", (None,))
connection.cursor.execute("""INSERT INTO SOME_TABLE(VARCHARABLE, NULLABLE) VALUES('%s', %s)""", ('TEST', None,))
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES('%s')""", (None,))
Офлайн
Я нашел решение :D. Надо писать
connection.cursor.execute("""INSERT INTO SOME_TABLE(VARCHARABLE, NULLABLE, INTEGERABLE) VALUES(%s, %s, %s)""", ('TEST', None, 6))
Офлайн
МИшаПри чем здесь Луц?! вот то что Вам нужно.
Но все-таки, я не совсем понял про запятую и кортеж после строки. У М.Лутца вроде про такое нет
Офлайн
тоже проблемма с NULL, ни как не пойму как сделать чтоб получилось.
обрывок кода
def save_to_bd(self):
self.connect = sqlite3.connect(self.db_file)
self.cursor = self.connect.cursor()
print(self.txt_list)
sql = "INSERT INTO times VALUES("+self.txt_list['bus']+",'"+\
self.txt_list['haltestelle']+"','"+\
self.txt_list['richtung']+"','"+\
self.txt_list['w_day']+"','"+\
self.txt_list[0]+"','"+\
self.txt_list[1]+"','"+\
self.txt_list[2]+"','"+\
self.txt_list[3]+"','"+\
self.txt_list[4]+"','"+\
self.txt_list[5]+"','"+\
self.txt_list[6]+"','"+\
self.txt_list[7]+"','"+\
self.txt_list[8]+"','"+\
self.txt_list[9]+"','"+\
self.txt_list[10]+"','"+\
self.txt_list[11]+"','"+\
self.txt_list[12]+"','"+\
self.txt_list[13]+"','"+\
self.txt_list[14]+"','"+\
self.txt_list[15]+"','"+\
self.txt_list[16]+"','"+\
self.txt_list[17]+"','"+\
self.txt_list[18]+"','"+\
self.txt_list[19]+"','"+\
self.txt_list[20]+"','"+\
self.txt_list[21]+"','"+\
self.txt_list[22]+"','"+\
self.txt_list[23]+"')"
self.cursor.execute(sql)
self.connect.commit()
self.connect.close()
sql = "INSERT INTO times VALUES({})".format(**self.txt_list)
Офлайн
sligelБросайте уже пхпшные привычки. Биндинг параметров для кого придумали?
тоже проблемма с NULL, ни как не пойму как сделать чтоб получилось.
ломаю голову, помогите друзья, хотяб ссылкой на мануалы какие нибудь
cur.execute("insert into test(p) values (?)", (p,))
Офлайн
кое что начинаю понимать но не совсем
import sqlite3
li = (1,None,'2---')
db_connect = sqlite3.connect('test.sqlite')
cursor =db_connect.cursor()
#----------------------------------------------------------------------
# вставляю строку в таблицу test во все колонки,
# но если надо вставить 28 значений, то что, писать
# VALUES (28 вопросов), и потом соответственно
# 28 значений ? или как то можно покомпактнее
#----------------------------------------------------------------------
cursor.execute("INSERT INTO test VALUES (?,?,?)",(li[0],li[1],li[2]))
db_connect.commit()
db_connect.close()
Офлайн
sligel#----------------------------------------------------------------------
# вставляю строку в таблицу test во все колонки,
# но если надо вставить 28 значений, то что, писать
# VALUES (28 вопросов), и потом соответственно
# 28 значений ? или как то можно покомпактнее
#----------------------------------------------------------------------
cursor.execute("INSERT INTO test VALUES (?,?,?)",(li[0],li[1],li[2]))
cursor.execute("INSERT INTO test VALUES (%s)" % ','.join(['?']*28), li)
Отредактировано (Май 20, 2011 05:38:38)
Офлайн
PooHможно конечно и перечислять, но я подумал так прощще т.к значения например могут быть такими li = (1,None,“kk”), а в следующий раз
А обязательно, кстати, во все поля вставлять? можно же явно поля перечислить, а для остальных DEFAULT прописать.
Офлайн