|
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
|
Спасибо огромное за подсказки, буду завтра доделывать. Пора бежать, учиться)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |