Форум сайта python.su
0
Здарвствуйте, все!
Мне необходимо вставлять в базу Null значения
Прочитал (в каком-то мануале в интернете), что для этого нужно использовать None. Я понял это следующим образом
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(None)""")
Офлайн
36
может так попробовать:
connection.cursor.execute("""INSERT INTO SOME_TABLE(NULLABLE) VALUES(?)""", (None,))Офлайн
0
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,))Офлайн
0
Я нашел решение :D. Надо писать
connection.cursor.execute("""INSERT INTO SOME_TABLE(VARCHARABLE, NULLABLE, INTEGERABLE) VALUES(%s, %s, %s)""", ('TEST', None, 6))Офлайн
36
МИшаПри чем здесь Луц?! вот то что Вам нужно.
Но все-таки, я не совсем понял про запятую и кортеж после строки. У М.Лутца вроде про такое нет
Офлайн
0
тоже проблемма с 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)Офлайн
72
sligelБросайте уже пхпшные привычки. Биндинг параметров для кого придумали?
тоже проблемма с NULL, ни как не пойму как сделать чтоб получилось.
ломаю голову, помогите друзья, хотяб ссылкой на мануалы какие нибудь
cur.execute("insert into test(p) values (?)", (p,))Офлайн
0
кое что начинаю понимать но не совсем
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()
Офлайн
72
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)
Офлайн
0
PooHможно конечно и перечислять, но я подумал так прощще т.к значения например могут быть такими li = (1,None,“kk”), а в следующий раз
А обязательно, кстати, во все поля вставлять? можно же явно поля перечислить, а для остальных DEFAULT прописать.
Офлайн