Pluto
Апрель 11, 2014 16:54:57
Подключился к dbf-файлам посредством pyodbc и microsoft jet
Оказывается, последний не умеет функцию REPLACE для
SELECT LEN(stroka) - LEN(REPLACE(stroka, “*”, “”)) FROM mytable
Мне надо подсчитать кол-во определённых символов в строковом поле dbf-файла.
Как извратиться?
Может, можно как-то подсунуть pyodbc и jet внешнюю функцию, написанную на питоне? Пусть это будет работать не быстро, но хоть как-то да будет!
Pluto
Апрель 21, 2014 13:22:02
АГГГГГРРРРРРРРРРРРРР!!!
Microsoft Visual Foxpro Driver умеет всё, что надо, но при этом, гадина такая, не позволяет никак указать, что файл в кодировке 866 и рисует мне кракозябры.
Microsoft Dbase Driver использует эту кодировку по-умочанию, но не умеет искать вхождения подстроки в строку!!!
Ах ты майкрософт! Да чтоб ты… была здорова!
Pluto
Апрель 21, 2014 16:46:53
Остаётся единственный выход: получать набор всех нужных строк в курсоре, а потом средствами питона высчитывать сколько там подстрок.