![]() |
![]() |
![]() |
|
SQLite (LiteX) и 1Cv8.2 | ☑ | ||
---|---|---|---|---|
0
Cr5
16.03.11
✎
19:51
|
Помогите решить вопрос с кодировкой...
Исходник функции по загрузке данных в файл *.db ниже. Попытка СтрокаПодключения="E:\!C_Bases_8.2\SQLite\1sprdb.db"; Connection = Новый ComОбъект("LiteX.LiteConnection"); Connection.Path = СтрокаПодключения; Connection.Open(); Connection.Execute("PRAGMA encoding='UTF-8'"); Connection.BatchExecute( "CREATE TABLE IF NOT EXISTS spr_klient(fk_key integer, descr varChar(100)); CREATE INDEX IF NOT EXISTS x_pk_x_kl ON spr_klient(fk_key)"); Connection.Execute("DELETE FROM spr_klient"); Счётчик = 0; Пока Выборка.Следующий() Цикл Connection.Execute( "INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"','"+Выборка.Наименование+"')"); Счётчик = Счётчик+1; Состояние(СокрЛП(Строка(Выборка.Наименование))); КонецЦикла; Connection.Close(); Сообщить("Экспорт прошел успешно! |Выгружено элементов: "+Счётчик); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; В строку Connection.Execute("PRAGMA encoding='UTF-8'"); не ругается только на УТФ-8 и УТФ-16 Суть вопроса - в таблице иероглифами Наименование, как быть и что делать? |
|||
1
Amra
16.03.11
✎
19:57
|
Convert('"+Выборка.Наименование+"' using utf8)
|
|||
2
Cr5
16.03.11
✎
20:19
|
Connection.Execute( "INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"', Convert('"+Выборка.Наименование+"' using utf8))");
Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (LiteX.LiteStatement.1): near "using": syntax error |
|||
3
shuhard
16.03.11
✎
20:23
|
(2) значит CAST, а не Convert
http://www.sqlite.org/lang_expr.html |
|||
4
Amra
16.03.11
✎
20:25
|
Проверь, чему равно "INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"', Convert('"+Выборка.Наименование+"' using utf8))" в момент выполнения?
|
|||
5
Amra
16.03.11
✎
20:26
|
(3) У мя конверт в такой ситуации уже год крутится по три раза на дню. Есть подозрение, что есть одиночные ковычки в наименовании
|
|||
6
Cr5
16.03.11
✎
20:33
|
В момент выполнения INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"', Convert('"+Выборка.Наименование+"' using utf8))
Ошибка при вызове метода контекста (Execute) |
|||
7
Cr5
16.03.11
✎
20:38
|
кавычек тоже не обнаружено
|
|||
8
Cr5
16.03.11
✎
20:41
|
и CAST ругается на тоже самое
|
|||
9
Amra
16.03.11
✎
20:42
|
(6) Да блин, отладчиком остановись в этой строке, и перед ее исполнением проверь, чему равна команда целиком
|
|||
10
Cr5
16.03.11
✎
20:44
|
я так и сделал!!!
вот результат в табло "Ошибка при вызове метода контекста (Execute)" |
|||
11
shuhard
16.03.11
✎
20:45
|
(8) пора залезть на сайт вендора и изучить язычок
|
|||
12
Amra
16.03.11
✎
20:45
|
Не Connection.Execute( "INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"', Convert('"+Выборка.Наименование+"' using utf8))") , а "INSERT INTO spr_klient(fk_key, descr) VALUES ('"+Строка(Выборка.Код)+"', Convert('"+Выборка.Наименование+"' using utf8))"
|
|||
13
Cr5
16.03.11
✎
20:49
|
Ответ отладчика - тип Строка:
INSERT INTO spr_tovar(fk_key, descr) VALUES ('2000000293271',Convert('Труба 0,5м ф115 0,8мм') using utf8) |
|||
14
Amra
16.03.11
✎
20:53
|
Скобка перед using лишняя, а вот после utf8 их должно быть две
|
|||
15
БибиГон
16.03.11
✎
20:53
|
скобка лишняя чтоли закрывающая.
|
|||
16
Cr5
16.03.11
✎
20:59
|
Результат отладчика после того как убрал лишнюю скобку - INSERT INTO spr_tovar(fk_key, descr) VALUES ('2000000293271',Convert('Труба 0,5м ф115 0,8мм' using utf8))
все равно ругается... |
|||
17
Cr5
16.03.11
✎
21:01
|
пробовал и так - INSERT INTO spr_tovar(fk_key, descr) VALUES ('2000000293271',Convert('Труба 0,5м ф115 0,8мм') using utf8)
|
|||
18
Amra
16.03.11
✎
21:05
|
Бредовая идея, конечно, но убери запятые в наименовании
|
|||
19
Cr5
16.03.11
✎
21:10
|
Результат отладчика -
INSERT INTO spr_tovar(fk_key, descr) VALUES ('2000000293271',Convert('Труба 0 5м ф115 0 8мм' USING 'utf8')) {ВнешняяОбработка.ТОВыгрузкаЗагрузкаТСДIntermecCK31.МодульОбъекта(79)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (LiteX.LiteStatement.1): near "USING": syntax error |
|||
20
Cr5
16.03.11
✎
21:12
|
может проблема в файле "E:\!C_Bases_8.2\SQLite\1sprdb.db" он не привязан не к чему... он после загрузки должен передаваться в терминал сбора данных для последующего считывания наименования номенклатуры по штрихкоду
|
|||
21
БибиГон
16.03.11
✎
21:21
|
попробуй вставлять частями, т.е. запиши только одно поле и смотри результат. К какому придерется.
вот так INSERT INTO spr_tovar(fk_key) VALUES ('2000000293271') using utf8) INSERT INTO spr_tovar(descr) VALUES (Convert('Труба 0,5м ф115 0,8мм') using utf8) |
|||
22
Cr5
16.03.11
✎
21:43
|
ему не нравиться using на него ругается "Произошла исключительная ситуация (LiteX.LiteStatement.1): near "using": syntax error"
|
|||
23
orefkov
17.03.11
✎
01:03
|
(0)
Сколько не пользовался SQLite, никогда не было проблем с кодировкой. Чем проверяешь, что в табличке иероглифы? |
|||
24
Cr5
17.03.11
✎
12:38
|
Проверяю SQLite Maestro и на Терминале сбора данных при считывании штрих-кода номенклатура тоже иероглифами
|
|||
25
orefkov
17.03.11
✎
22:58
|
(24)
Попробуй вместо LiteX юзать - dhRichClient3 http://www.thecommon.net/3.html По крайней мере я ей из восьмерки работаю с sqlite базой, проблем не было. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |