Страница 2 из 5
Проблема с кодировкой TPS
Добавлено: 19 Январь 2016, 22:38
Игорь Столяров
Shur писал(а): Допустим, очистить таблицу и попытаться записать в неё запись с этого компа.
Естественно попробовал. База созданная на этом компьютере локально - прекрасно на нем же и работает.
А вот при попытке работы с этой тестовой БД с других компьютеров - получаем ту же самую ошибку.
Т.е. не могут компьютеры с разной кодировкой работать с общей БД (ну или по крайне мере работать
с ключами по символьным строкам, порядок сортировки которых определяется CLACOLSEQ).
В принципе умозаключение не новое - это есть в справке Clarion, с картинками (для C10).
Это беда notSQL БД - ключи в общей БД перестраивает каждый компьютер исходя из своих настроек.
Нет проблем, пока все хорошо и настройки одинаковы. Но как только на одном, что-то происходит,
получаем описанную проблему ....
Проблема с кодировкой TPS
Добавлено: 19 Январь 2016, 22:52
Shur
Вот ещё один наводящий. Есть разница, если наименование вводить латиницей/кириллицей?
Про CALCOLSEQ. А ту ли последовательность вы пробуете сейчас задать для проблемного компа?
Насколько я понимаю, "родными" для виндов являются такие:
Код: Выделить всё
CLACASE="ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","abcdefghijklmnopqrstuvwxyzабвгдежзийклмнопрстуфхцчшщъыьэюя"
CLACOLSEQ=" !""#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
Проблема с кодировкой TPS
Добавлено: 19 Январь 2016, 23:09
Игорь Столяров
Вот если бы можно было получить такую строку CALCOLSEQ на разных компьютерах и сравнить - это конечно
пролило бы свет на происходящее. Интересно, а где в Windows прописана эта последовательность символов,
которую Clarion вытягивает через Locale('CLACASE','WINDOWS') ? Есть такая информация ?
Проблема с кодировкой TPS
Добавлено: 19 Январь 2016, 23:28
Shur
Текущее значение CLACOLSEQ можно получить опытным путём.
Создаём очередь Q из одного поля F, объявленного как STRING(1). Заливаем туда все символы из CLACOLSEQ (желательно дихотомично или в обратном порядке). Делам SORT(Q,+F). Выводим на экран любым доступным способом.
Проблема с кодировкой TPS
Добавлено: 19 Январь 2016, 23:45
Игорь Столяров
Shur писал(а): Выводим на экран любым доступным способом.
Спасибо. Это тот случай, когда думаешь "почему я сам до этого не догадался".

Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 1:41
Admin
Shur писал(а):желательно дихотомично
это как?
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 2:30
gopstop2007
Admin писал(а):это как?
типа раздвоение , личности

а не пробовали через .evn перестроить для данного компа ключи?

Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 6:24
Игорь Столяров
Shur писал(а): Текущее значение CLACOLSEQ можно получить опытным путём.
Т.е. теперь, гипотетически, получается, что мы можем решить указанную проблему следующим путем:
1. Сформировать на работающем компьютере файл с последовательность CLACOLSEQ для CHR() от 1 до 255.
2. На проблемном компьютере загрузить этот файл как CLACOLSEQ.
И не вникая в суть возникновения проблемы, мы ее решаем. Это достойно того, что бы попробовать ...

Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 10:27
Shur
Игорь Столяров писал(а): 1. Сформировать на работающем компьютере файл с последовательность CLACOLSEQ для CHR() от 1 до 255.
Достаточно с 32 по 255.
Для любителей готовых решений (знаю, есть у нас такие!), набросал код для получения текущего состояния CLACOLSEQ.
Код: Выделить всё
ABC STRING(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя')
ABCNew LIKE(ABC)
Q QUEUE
F STRING(1)
end
CODE
loop i# = len(ABC) to 1 by -1
Q.F = ABC[i#]
ADD(Q)
end
SORT(Q,+F) ! то, собственно, ради чего
loop i# = 1 to records(Q)
get(Q,i#)
ABCNew[i#] = Q.F
end
message(ABCNew&'|'&ABC,'CLACOLSEQ',,,,10b) ! здесь внимательно смотрим: то, что осталось на месте, того вообще, по всей видимости, нет в CLACOLSEQ
P.S. Код для проверки CLACASE приводить не буду. Надеюсь, все сумеют его написать.
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 10:29
kreator
Навеяло ночью. Я использую SQL, но и CLACOLSEQ тоже, он у меня тоже от Винды. Получается, что я тоже могу нарваться на такую проблему? Недопонимаю что-то.
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 10:41
Shur
kreator писал(а):Навеяло ночью. Я использую SQL, но и CLACOLSEQ тоже, он у меня тоже от Винды. Получается, что я тоже могу нарваться на такую проблему? Недопонимаю что-то.
Самому SQL наплевать. А вот на сортировке списков (не таблиц) давно бы уже заметили багу. Спи спокойно.
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 10:50
kreator
Shur писал(а):Самому SQL наплевать. А вот на сортировке списков (не таблиц) давно бы уже заметили багу. Спи спокойно.
Радует, конечно, что БД не испортится. Но траблы на станции могут быть и необязательно в сортировке (которую пользователь может и не заметить). Хорошо бы выяснить про "оптимизатор", который так всё ломает.
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 10:55
Shur
kreator писал(а): Хорошо бы выяснить про "оптимизатор", который так всё ломает.
Ну так Игорь, наверное, отпишется по результатам...
Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 11:07
Игорь Столяров
Shur писал(а): Ну так Игорь, наверное, отпишется по результатам...
Что именно вызвало проблему - я не знаю. На компьютере установлено куча всякого г..., вроде CClear и т.д.
которые распространяются как addware и ставятся при устсновке других программ ...
Говорят, что точно прогоняли вот эту хрень
https://www.kerish.org/ru/product.php на нее и есть основное подозрение.
Так это или нет - я не проверял, не до того ...

Проблема с кодировкой TPS
Добавлено: 20 Январь 2016, 16:08
Admin
Игорь Столяров писал(а): CClear
Нормальная программа. Уже несколько лет пользуюсь. Кларион не ломался никогда.