Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение SHURA » 24.11.2009 16:01:02

Было написано приложение на Lazarus-0.9.24-fpc-2.2.0-20071114-win32 для работы с MSSQL базой через ZEOS.
После этого много было написано для MySQL. Вот решил обновить Lazarus-0.9.29-22728-fpc-2.3.1-20091124-win32.

Проблема в том, что после перехода и откомпилирования перестали отображаться русские символы в MSSQL приложении на экране (MySQL работает на кодировке UTF-8 и продолжает работать после перекомпиляции), а если экспортировать в txt, то все там в txt замечательно. Заметил также, что если пытаюсь что-то из кода отобразить кириллицей, то выводится «знаками вопросами». Если в компоненте было написано кириллицей в IDE, то отображается нормально.

Подскажите чайнику как решить проблему?
Вариант перейти обратно на 0.9.24 и fpc-2.2.0 прошу не предлагать, т.к. уж больно шустрее работает 0.9.29 :roll:

Понял почему из кода не писалось кирилицей: раньше pas'ы были в ANSI, а щас нужно в UTF8. Но с отображением данных таблицы на экране по русски не разобрался.

Добавлено спустя 20 часов 50 минут 3 секунды:
Нашел решение следующим образом из темы про «Отображение полей с русским текстом при запросе c Oracle»
1. В TSQLQuery редактируете поля (правой кнопкой мыши вызываете контекстное меню, выбираете первый пункт), добавляем все.
2. Для текстовых полей смотрите метод GetText (получить текст) и переопределяете его, дописав одну строку.
aText := AnsiToUtf8(Sender.AsString);

Все заработало. Но приходится ручками для каждого query сначала объявлять поля, а затем в текстовых полях вставлять преобразование текста.
Аватара пользователя
SHURA
незнакомец
 
Сообщения: 5
Зарегистрирован: 27.11.2007 18:32:26
Откуда: РФ, Киров

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение Astralis » 30.11.2009 00:02:53

Решения не предложу, но скажу что поддержка MS SQL компонентами ZEOS в дальнейшем не планируется, поскольку она использовала библиотеку, которая больше не распространятся.
Советую обратить внимание на проект FreeTDS
viewtopic.php?f=10&t=4899
Аватара пользователя
Astralis
новенький
 
Сообщения: 45
Зарегистрирован: 06.06.2007 20:33:05
Откуда: Tvercity-Annet

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение SHURA » 02.12.2009 15:17:53

Столкнулся с другой проблемой
при сохранении файла методом
Код: Выделить всё
lFS := TFileStream.create( savedialog1.FileName, fmCreate);

Выпадает ошибка «Unable to create file...» если в пути встречаются русские буквы. Как решить проблему?

Прошу прощения за баян... ответ найден на форуме (поиск рулит) :roll:

Код: Выделить всё
Uses ... ,FileUtil, ...
lFS := TFileStream.create(UTF8ToSys(savedialog1.FileName), fmCreate);



P.S. 2 Astralis спс... посмотрю и учту, но мне на полгода надо щас сделать, чтоб работало с MS... потом все переведут на MySQL или FireBird.
Аватара пользователя
SHURA
незнакомец
 
Сообщения: 5
Зарегистрирован: 27.11.2007 18:32:26
Откуда: РФ, Киров

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение alexmai » 07.12.2009 12:49:24

Формируй запрос в файл скрипта и выполняй его через TSQLScript
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение fl@nker » 23.12.2009 16:07:40

SHURA ... если не секрет, MS SQL Server 2000 или моложе ... если последнее, как удалось завести ZEOS :oops:
... понимаю, чуть не в тему ...и всё же Help !!! ... где-то очень близко ...
Linux 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 17:01:44 UTC 2009 x86_64 GNU/Linux
unixodbc 2.2.11-16
FreeTDS 0.82-6
Lazarus 0.9.26.2-2
|
V
MS SQL Server Express 2005/2008
в терминале (isql -v <DNS> <login> <pass>) подключаюсь ... делаю запросы ... вижу кириллицу ... и т.д.
А из проекта в Lazarus через компоненты TODBCConnection подключиться не могу.

Тот же проект под Win32 подключается ... но проблемы с кирилицей ... (собственно что и в чём я получаю так и не понял ... по определению это должна быть USC2 ... но UTF8encode(FieldByName('<table_name>').AsWideString>) возвращает бред ... драйвер что идёт с MDAC не "пашет" ... работает только Native идущий с клиентской частью ) :cry:
Последний раз редактировалось fl@nker 23.12.2009 16:17:07, всего редактировалось 1 раз.
fl@nker
незнакомец
 
Сообщения: 8
Зарегистрирован: 23.06.2009 11:31:12

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение Mr.Smart » 23.12.2009 16:12:15

А зачем использовать UTF8Encode? MS SQL с данной кодировкой не дружет и если данные возвращаются в уникоде то это только USC2 и они соответствуют обычному в FPC типу WideString
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение fl@nker » 23.12.2009 16:20:01

Согласен ... но LCL работает с UTF-8 ... вот и USC2 -> UTF8 ...

PS Если честно хотелось бы верить в возможность скрестить ZEOS с MS SQL Server 2005/2008
fl@nker
незнакомец
 
Сообщения: 8
Зарегистрирован: 23.06.2009 11:31:12

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение Mr.Smart » 23.12.2009 16:28:49

проблем не было. есть у меня проект который работает уже довольно давно....
хотя что-то не могу припомнить на каком это объекте работает и какой всё таки там MS SQL установлен...

Добавлено спустя 2 минуты 25 секунд:
и сейчас я ZeosDB вообще не использую. Если что-то нужно типа MS SQL использую самописную библиотеку по работе с ODBC!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение fl@nker » 24.12.2009 09:51:41

Я Вас правильно понял ... TODBCConnection ... нерабочая компонента ... ?
fl@nker
незнакомец
 
Сообщения: 8
Зарегистрирован: 23.06.2009 11:31:12

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение Mr.Smart » 24.12.2009 18:18:53

fl@nker писал(а):Я Вас правильно понял ... TODBCConnection ... нерабочая компонента ... ?

Почему, рабочий он, но не реализованы некоторые возможности и отсутствует (насколько я помню) поддержка полей с ункодом.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение alexmai » 24.12.2009 20:13:54

смотри мой пост на форуме
как победил глюки ODBC при работе с MSSQL
через связку freetds+unixodbc
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=4399

Добавлено спустя 3 минуты 31 секунду:
Даже хранимую процедуру в виндовой кодировке удалось создать на сервере MSSQL 2000
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Переход на Lazarus 0.9.29 (MS SQL и кириллица)

Сообщение fl@nker » 25.12.2009 12:28:02

Благодарю ... читал и раньше ... собственно нужен был линк:
ln -s /usr/lib/libodbc.so.1 /usr/lib/libodbc.so

если ставим пакет unixodbc-dev линк уже есть ... всё работает, кириллицу вижу ВСЕМ СПАСИБО!!!! :D
fl@nker
незнакомец
 
Сообщения: 8
Зарегистрирован: 23.06.2009 11:31:12


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

Рейтинг@Mail.ru