Python 3.65 вставляет запрос вставки выдает операционную ошибку - PullRequest
0 голосов
/ 26 июня 2018

У меня проблемы с моим запросом на вставку. Я продолжаю получать ошибку

Пробовал несколько вещей, как предложено в Google, но ничего не работает.

Мои значения данных заполняются в списке по всему сценарию, и это единственный способ, которым я могу вставить значения в свой запрос.

Номера полей и значения совпадают; Я перепробовал все строки; Я пытался использовать (sql_formatted,); и наконец [sql_formatted]

Если я вручную отправляю запрос в виде одной большой длинной строки в браузере sqlite, это работает. Именно эта библиотека poncy sqlite3 заставляет меня использовать (?,?,? ....) формат, который вызывает у меня горе.

Для простоты я полностью сломал это:

sql_formatted = []
sql_formatted.append("2018-06-26")
sql_formatted.append("my test")
sql_formatted.append("1.0")
sql_formatted.append("runperiod")
sql_formatted.append("Transaction 1")
sql_formatted.append(1.776)
sql_formatted.append(8.803)
sql_formatted.append(15.161)
sql_formatted.append(4.138)
sql_formatted.append(13.999)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append(15.161)
sql_formatted.append(23)
sql_formatted.append(0)
sql_formatted.append(0)
sql_formatted.append('N')

try:

cur.execute("insert into lr_rundata (current_date, test_name, app_version, test_run_period, transaction_name, '\
'sla_status, minimum, average, maximum, std_deviation, percentile80, percentile81, percentile82, percentile83, percentile84, '\
'percentile85, percentile86, percentile87, percentile88, percentile89, percentile90, percentile91, percentile92, percentile93,'\
'percentile94, percentile95, percentile96, percentile97, percentile98, percentile99, pass, fail, stop, deleted) values '\
'(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", (sql_formatted,))

Любые предложения будут приветствоваться !!

С уважением

Настольный скрипт:

cur.executescript('''CREATE TABLE lr_rundata (
id      integer primary key AUTOINCREMENT,
current_date   DATETIME NOT NULL,
test_name   TEXT NOT NULL,
app_version   TEXT NOT NULL,
test_run_period   TEXT NOT NULL,
transaction_name   TEXT NOT NULL,
sla_status   INTEGER NOT NULL,
minimum   REAL NOT NULL,
average   REAL NOT NULL,
maximum   REAL NOT NULL,
std_deviation   REAL NOT NULL,
percentile80   REAL NOT NULL,
percentile81   REAL NOT NULL,
percentile82   REAL NOT NULL,
percentile83   REAL NOT NULL,
percentile84   REAL NOT NULL,
percentile85   REAL NOT NULL,
percentile86   REAL NOT NULL,
percentile87   REAL NOT NULL,
percentile88   REAL NOT NULL,
percentile89   REAL NOT NULL,
percentile90   REAL NOT NULL,
percentile91   REAL NOT NULL,
percentile92   REAL NOT NULL,
percentile93   REAL NOT NULL,
percentile94   REAL NOT NULL,
percentile95   REAL NOT NULL,
percentile96   REAL NOT NULL,
percentile97   REAL NOT NULL,
percentile98   REAL NOT NULL,
percentile99   REAL NOT NULL,
pass   INTEGER NOT NULL,
fail   INTEGER NOT NULL,
stop   INTEGER NOT NULL,
deleted        TEXT NOT NULL)''')

1 Ответ

0 голосов
/ 26 июня 2018

Вы добавили значения к sql_formatted 33 раза, но вставляете их в 34 столбца. Другая проблема связана с цитатами. Они не соответствуют. Вы использовали взаимные кавычки и одинарные кавычки. Кроме того, поскольку вы используете массив, вам не нужен синтаксис кортежа. См. Код ниже ...

Я не могу это проверить. Дайте мне знать результат:

cur.execute('insert into lr_rundata (current_date, test_name, app_version, test_run_period, transaction_name, '\
'sla_status, minimum, average, maximum, std_deviation, percentile80, percentile81, percentile82, percentile83, percentile84, '\
'percentile85, percentile86, percentile87, percentile88, percentile89, percentile90, percentile91, percentile92, percentile93,'\
'percentile94, percentile95, percentile96, percentile97, percentile98, percentile99, pass, fail, stop, deleted) values '\
'(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)', sql_formatted)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...