Имя: Пароль:
1C
1C 7.7
v7: 1SQlite помогите разобраться с инсертом?
,
0 Zhuravlik
 
11.10.12
18:25
Здравствуйте. Пытаю инсерт, вот такой код:


Процедура ДобавитьСобытиеВБазуЛогов(Событие, Объект)
   
   //Мета = СоздатьОбъект("MetaDataWork");
   //мета_Объект = Мета.ЗначениеВСтрокуБД(Объект);
   //мета_ЮзерИД = Мета.ЗначениеВСтрокуБД(глПользователь);

   ГГ=Строка(ДатаГод(ТекущаяДата()));
   ММ=Строка(ДатаМесяц(ТекущаяДата()));
   ДД=Строка(ДатаЧисло(ТекущаяДата()));
   
   стрДАТА = ГГ + ММ + ДД;
   
   Юзер = "Пользователь";
   ТекстЗапроса = "
   |INSERT
   |INTO Log (""Object"", ""User"", ""Date"", ""Time"", ""Event"")
   |Values ("""+ Объект +""", """+ Юзер +""","""+ стрДАТА +""", """+ ТекущееВремя() +""", """+ Событие +""")
   |";
   
   Запрос = г_ЛОГ_база.НовыйЗапрос();
   Запрос.Отладка();
   Запрос.ВыполнитьЗапрос(ТекстЗапроса);
   
КонецПроцедуры // ДобавитьСобытиеВБазуЛогов


Процедура Сформировать()

   Для сч=1 По 1 Цикл
       
       Попытка
           ДобавитьСобытиеВБазуЛогов("Событие" + сч, "Объект_" + сч);
       Исключение
           Сообщить(ОписаниеОшибки());
           Прервать;
       КонецПопытки;
       
   КонецЦикла;
   
   
КонецПроцедуры


Пишет - "Ошибка подстановки текстового параметра 22 - Неизвестный параметр"
1 Zhuravlik
 
11.10.12
18:27
+Забыл... В глобальнике

       Перем г_ЛОГ_база Экспорт;
...
   г_ЛОГ_база = СоздатьОбъект("SQLiteBase");
   г_ЛОГ_база.Открыть(КаталогИБ() + "LOG");

   //один раз при начале работы системы, потом убрал:
   тз = СоздатьОбъект("ТаблицаЗначений");
   тз.НоваяКолонка("Object", "Строка");
   тз.НоваяКолонка("User", "Строка");
   тз.НоваяКолонка("Date", "Дата");
   тз.НоваяКолонка("Time", "Строка", 8);
   тз.НоваяКолонка("Event", "Строка");
   г_ЛОГ_база.УложитьТЗ(тз, "Log", 1);
2 Zhuravlik
 
11.10.12
18:32
Это какая-то аура мисты) Только спросил через 10 сек сам все понял)))

   ГГ=Строка(ДатаГод(ТекущаяДата()));
   ММ=Строка(ДатаМесяц(ТекущаяДата()));
   ДД=Строка(ДатаЧисло(ТекущаяДата()));
   
   стрДАТА = ГГ + ММ + ДД;
   
   Юзер = "Пользователь";
   ТекстЗапроса = "
   |INSERT
   |INTO Log (""Object"", ""User"", ""Date"", ""Time"", ""Event"")
   |Values ("":Объект"", "":Юзер"","":Дата"","":Время"","":Событие"")
   |";

   Запрос = г_ЛОГ_база.НовыйЗапрос();
   Запрос.Отладка();
   Запрос.Подставлять("Объект", Объект);
   Запрос.Подставлять("Юзер", Юзер);
   Запрос.Подставлять("Дата", стрДАТА);
   Запрос.Подставлять("Время", ТекущееВремя());
   Запрос.Подставлять("Событие", Событие);
   Запрос.ВыполнитьЗапрос(ТекстЗапроса);
3 Злопчинский
 
11.10.12
18:34
а чего бы обычным Новый() не воспользоваться?
4 Zhuravlik
 
11.10.12
18:36
(3) Не понимаю, о чем вы( Что значит "обычным Новый()"?
5 Zhuravlik
 
11.10.12
18:40
А вот ошибка у меня появлялась "Ошибка подстановки текстового параметра 22 - Неизвестный параметр" - где-нибудь есть расшифровка таких ошибок?
6 Aleksey
 
11.10.12
18:47
Это точно 1SQlite? А не 1с++?
7 Aleksey
 
11.10.12
18:49
Я обычно намного проще вставляю
запрос.ВыполнитьЗапрос("INSERT INTO "+ВидДок+"( ИдДок, Значение) VALUES ('"+ИдДок+"','"+ЗначениеВСтрокуВнутр(ТЗ)+"');");
8 Mikeware
 
11.10.12
18:50
(6) а на вид - приличный человек....
9 Aleksey
 
11.10.12
18:50
Опять таки строковые переменные обрамляются одинарными ковычками (апостроф) т.е. '
10 Aleksey
 
11.10.12
18:51
(8) Да я из и 1С++ только индексированной таблицей пользуюсь, так что могу ошибаться
11 Zhuravlik
 
11.10.12
18:53
(6) Да, точно.
(7) Я только начал)
(9) Спасибо, учту.
12 Aleksey
 
11.10.12
18:54
ТекстЗапроса = "
   |INSERT
   |INTO Log (Object, User, Date, Time, Event)
   |Values ('"+Объект+"','"+Юзер+"','"+Дата+"','"+Время+"','"+Событие+"')
   |";
13 Aleksey
 
11.10.12
18:55
(8) Согласен не прав, просто через параметры никогда инсерты ни писал и немного растерялся. Обычно параметры в условиях испльзую
14 Mikeware
 
11.10.12
18:56
(10) просто 1с++ и 1sqlite - разные штуки...
15 Zhuravlik
 
11.10.12
18:59
Спасибо огромное за подсказки, буду завтра доделывать. Пора бежать, учиться)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший