Собственно здесь я пишу небольшие заметки, которые никак не назвать полноценным постом, но тем не менее какая-то полезная информация (по крайней мере для меня) есть.
Lazarus + MySQL 5.x Проблемы с кодировками
Суть проблемы: в БД есть таблица в кодировке utf-8, в таблице все текстовые поля также представлены в utf-8. Запись в базу данных отправляется также в utf-8. В результате в таблицу попадают кракозябры вместо русских букв. Аналогичная ситуация при работе с кодировками cp1251 и т.д.
Решение: может и не совсем корректное, но оно работает. Перед запросом на добавление/чтение данных отправлять на сервер:
SET NAMES кодировкаили, если клиент и сервер работают в разных кодировках указывать:
SET character_set_client="кодировка1", character_set_connection="кодировка2", character_set_results="кодировка3";
Здесь:
character_set_client - указывает, в какой кодировке будут поступать данные от клиента;
character_set_connection - указывает, в какую кодировку следует преобразовать данные полученые от клиента перед выполнением запроса;
collation_connection - указывает, каким образом сравнивать между собой строки в запросах;
character_set_results - указывает серверу не необходимость перекодировать результаты запроса в определенную кодировку перед выдачей их клиенту
Lazarus + WebBrowser
В сети довольно много вопросов по поводу использования TwebBrowser в Lazarus для работы со ссылками. Одним из вариантов просмотра сайтов при написании программ в Lazarus - открывать html-страницы в браузере ОС. Для Windows - это Internet Explorer либо любой другой, используемый по умолчанию.
Для того, чтобы открыть страничку в браузере:
для Windows:
1. Подключить модуль ShellAPI
2. Выполнить процедуру ShellExecute
для Linux:
пока могу посоветовать использовать TProcess. Так, страницу моего блога можно открыть с помощью следующего кода:
Process1.CommandLine:=' firefox http://webdelphi.ru'; Process1.Execute;
Главная страница блога откроется в Firefox на новой вкладке.
Lazarus + MySQL
При использовании MySQLQuery следует обратить внимание на свойство PacketRecords - от него зависит сколько за раз записей вернется вам в запросе. Нарпимер, если PacketRecords=10, то при запросе в таблицу с 200 записями:
SELECT * FROM TABLE
Вам вернется только 10 первых записей, даже если будет такой запрос
SELECT * FROM TABLE LIMIT 0,200
затем надо будет вызвать метод UpdateCursorPos и вам вернет следующая порция записей.
Lazarus + OpenOffice
И всё-таки мир не справедлив...практически для всех популярных языком программирования разработан UNO bridge, позволяющий общаться с OpenOffice из своего приложения...А для Pascal'я нет :( Единственная разработка ведется русским сообществом Лазаруса и та годится в Linux на 50%...Походу придётся курить документацию по формату OpenDocument и составлять все отчёты с нуля
WinInet
Чтобы отлавливать коды 302 и 301 с использованием метода HttpQueryInfo необходимо в вызове HttpOpenRequest использовать флаг INTERNET_FLAG_NO_AUTO_REDIRECT, который останавливает автоматическое перенаправление.
Вот бы такие микроавтобусы вместо "Газелей" по маршрутам ездили :)










Свежие комментарии