Имя: Пароль:
1C
1C 7.7
v7: Глюк SQLite LIKE
0 Asakra
 
02.09.15
06:54
почему-то не работает запрос
SELECT
CODE
FROM
[Справочник._Доверенности]
WHERE
CODE LIKE 'БЦ-СПЯ%'

хотя SUBSTR(CODE,1,6) = 'БЦ-СПЯ' исправно работает. с другими префиксами LIKE работает, а с этим ни как. с таким условием тоже работает SUBSTR(CODE,1,13) LIKE 'БЦ-СПЯ%'. хотелось бы понять закономерность. может кто сталкивался?

p.s.
не комильфо везде SUBSTR втыкать...
1 Брегорьян
 
02.09.15
07:01
а в там бывают неограниченные строки?
2 Asakra
 
02.09.15
07:02
нет. это ж код справочника. длина 13 знаков...
3 Mutniy2
 
02.09.15
07:10
Да вроде должно работать:
http://www.tutorialspoint.com/sqlite/sqlite_like_clause.htm
4 Asakra
 
02.09.15
07:18
(3) ну дык и я дума, что должно. код ("CODE LIKE '" + Префикс + "%'") уже работает около года, а проблема только возникла...
5 Asakra
 
02.09.15
07:19
зачем в данном случае SQLite хочет SUBSTR не понятно :(
6 1Сергей
 
02.09.15
07:30
не работает в смысле не находит?
7 Asakra
 
02.09.15
07:32
(6) ага
8 Asakra
 
02.09.15
07:32
хм... CODE LIKE 'БЦ-СП%' работает значит...
9 Asakra
 
02.09.15
07:33
чего ему бука Я не нравиться?
10 Asakra
 
02.09.15
07:37
буха-ха. такой изврат работает CODE LIKE 'БЦ-СП'||'Я'||'%'
в чем прикол?
11 Asakra
 
02.09.15
07:41
и так работает:
CODE LIKE 'БЦ-СПЯ'||'%'
CODE LIKE CAST('БЦ-СПЯ%' AS TEXT)

однако внеочередной глюк с типизацией...
12 Asakra
 
02.09.15
07:43
на чем успокоиться? :)
на этом CODE LIKE 'БЦ-СПЯ'||'%'
13 Asakra
 
02.09.15
07:56
попробовал через параметр, та же фигня. работает только через кастование...
14 1Сергей
 
02.09.15
08:35
код Я = 255
он же код конца строки. Видимо, проблема в этом
15 1Сергей
 
02.09.15
08:35
* КодСимв("я") = 255
16 Asakra
 
02.09.15
09:02
(14) эээ... я только не могу понять разницы между
'БЦ-СПЯ'||'%'
и
'БЦ-СПЯ%'

и там и там Я присутствует. по сути это одно и тоже, только первое вынуждает sqlite типизировать (я так думаю) параметр.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн