|
v7: 1sqlite, insert into | ☑ | ||
|---|---|---|---|---|
|
0
Eeakie
31.07.18
✎
20:54
|
Добрый вечер.
Качнул последнюю 1sqlite.dll и пытаюсь засунуть в табличку данные. ЗагрузитьВнешнююКомпоненту("1sqlite.dll"); БазаДанных = СоздатьОбъект("SQLiteBase"); БазаДанных.Открыть("C:\test.db"); Попытка Запрос = БазаДанных.НовыйЗапрос(); Запрос.ВыполнитьЗапрос("INSERT INTO tab(n1,n2,n3) VALUES(1,2,3)"); Исключение БазаДанных.Закрыть(); Сообщить("Не удалось выполнить запрос.", "!"); КонецПопытки; Запрос не выполняется. Этот же запрос кидаю в SQLiteStudio в редактор SQL и всё нормально добавляется. Чё, блин, не так? |
|||
|
1
Eeakie
01.08.18
✎
00:55
|
Да ладно вам. UP! :D
|
|||
|
2
strange2007
01.08.18
✎
06:56
|
Падает на какой строке? Или всё отрабатывает хорошо, но в БД ничего не появляется?
|
|||
|
3
Cool_Profi
01.08.18
✎
06:57
|
Никогда не используй ОписаниеОшибки()
Лучше ошибку телепатировать |
|||
|
4
Germes
01.08.18
✎
07:09
|
Вообще-то не в одинэске при работе с sqlite после запросов на изменение/добавление надо обязательно делать commit.
Может быть в этом дело? |
|||
|
5
Salimbek
01.08.18
✎
07:49
|
(0) Можно еще Закрыть() сделать и при успешном выполнении запроса, а не только при падении с ошибкой.
|
|||
|
6
Germes
01.08.18
✎
08:03
|
Вот здесь есть примеры с INSERT:
Как одним запросом вставить несколько строк в таблицу SQlite Там после INSERT делается COMMIT. А в (0) - COMMIT нет. Так что наверное в этом дело. |
|||
|
7
strange2007
01.08.18
✎
08:17
|
(6) Это не обязательно. Для одной строки абсолютно не обязательно.
У автора надо сначала выяснить, что случилось - падает в ошибку, не пишется в БД, пишется но не в ту... Тут вдь только гадать приходится |
|||
|
8
Djelf
01.08.18
✎
12:08
|
Да просто "последняя версия" не последняя.
Орефковская 1.0.2.6 такое не умеет, она на движке sqlite 3.7.10, а вставка нескольких значений как в (0) добавлена в 3.7.11 Вот последняя http://catalog.mista.ru/public/559826/ она такое умеет. |
| Форум | Правила | Описание | Секции | Поиск |