Привет! > Нашёл примеры (freeadhocudf) - со стороны базы вроде всё тож самое, но > сам dll на C написан, и от туда xрен разберусь как на дельфе правилно сделать > :(
Так как у меня все примеры на сях - не буду тебя сбивать с толку сишным кодом - мне облегчило дело то, что удалось вырезать часть кода прям из исходников Птица для работы (конвертации) со строками. Но тебе это вряд ли поможет. Главное - запомни, что: 1) Если база в UTF-8 - то все объявления, как обычно, но физически все строки в байтах в 4 раза длиннее. Нулевых байтов нет, они только в конце строки (если ты используешь CSTRING-объявления). 2) Со стороны клиента тоже нет никаких проблем, если помнить, что физически 1 буква - это 4 байта в памяти максимум, но лучше сразу конвертировать строки из UTF-8 во что-нибудь удобоваримое - типа wchar_t (или как оно там в дельфях) - так будет удобнее оперировать с буквами. 3) Птицевый SUBSTRING работает с БУКВАМИ (если все кодировки - базы и подключения - кошерные). 4) Блобы (как и строки) транслитерируются только если они текстовые. ВНИМАНИЕ: есть засада - не все буквы в UTF-8 могут быть преобразованы в кодировку подключения, отличную от UTF-8 - например, маленькая греческая буква "микро" НЕ транслитерируется при подключении в win-1251. Сервер матерится на это дело своим стандартным заклинанием "Can not transliterate between character sets". Я давным-давно обсуждал эту бяку с Птицеводами, в результате (кажется Дима Еманов - поправьте, если вру), решили, что это не бага, а фича, ибо нельзя впихнуть невпихуемое. > Точно нету у кого небудь какоито сампл на дельфе 2009 где > UDF возврошает стринг в UTF8 кодировке ??? Плииииз :) Звиняйте, по-моему Дельфи умер - мелкомягкие тоже постарались всех на шарп перетащить. -- Best regards, Sergey mailto:[email protected]

