Имя: Пароль:
1C
1C 7.7
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/ она такое умеет.
2 + 2 = 3.9999999999999999999999999999999...