Я только что обновил одну из своих баз данных, включая создание новой таблицы AUTO_VERIFICATION. Эта таблица создается с помощью следующего запроса:SQLite query return "синтаксическая ошибка Не удалось выполнить оператор"
CREATE TABLE AUTO_VERIFICATION (stock text NOT NULL PRIMARY KEY, current_value double, last_high double, last_low double)
Позже при попытке вставить первую запись, используя тот же самый вид кода, который я уже успешно используется для вставки данных в других таблицах, я получаю ошибку следующим образом (это использует собственное сообщение об ошибке моего приложения):
Error in call to MShareDatabase::execQuery: near \"0.00\": syntax error Unable to execute statement (query: INSERT INTO AUTO_VERIFICATION (stock, current_value, last_high, last_low) VALUES ('CYRE3', 0.00, 0.00, 0.00)
Я просто не могу понять эту ошибку! Я уже проверил с другими частями кода, где я создаю другие таблицы и вставляю в них данные, и это тот же синтаксис. Я также использовал один из этих веб-сайтов, где вы можете проверить, хорошо ли синтаксис SQL, и он вернулся ко мне.
Не могли бы вы рассказать мне, в чем проблема?
Я использую SQLite с Qt 5.5 и только для записи все другие функции транзакций базы данных в моем коде (довольно много) работают нормально.
Прекрасно работает здесь с SQLite 3.10.2 в командной строке. Я не уверен, что локаль может повлиять на вас, и точка не интерпретируется как десятичный разделитель? – Olli
@ Олли хорошо, это то, чего я ожидаю от всех. XD Серьезно, эта ошибка сумасшедшая! В любом случае, я не думаю, что это так: как я уже сказал, запрос имеет одинаковый синтаксис для каждого другого запроса, а остальные работают нормально. Тем не менее я постараюсь проверить, могу ли я что-то пропустить. Благодаря! – Momergil
Очень сумасшедшая ошибка! Как создать запрос? Вы пробовали с привязкой ценностей? (QSqlQuery :: bindValue) – Fabio