вопрос по PostgreSQL

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

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

Re: вопрос по PostgreSQL

Сообщение Nadin » 23.07.2009 11:14:15

Скачала заплатку pgconnection, скопировала файл, перекомпилировала Лазарь и всё равно и в DBGRid, и в SQLQury.SQL при просмотре результатов запроса не все записи с кириллицей отображаются правильно. В PGAdmin III SELECT возвращает все строки корректно. Кодировка базы в Postgres UTF8.
Некоторые записи показываются пустыми, хотя там есть данные, некоторые обрезаются, а в некоторые добавляются дополнительные символы. Что я делаю неправильно?
Nadin
новенький
 
Сообщения: 10
Зарегистрирован: 22.07.2009 11:58:59
Откуда: Красноярск

Re: вопрос по PostgreSQL

Сообщение Logo » 23.07.2009 12:22:37

Это ошибка не Lazarus, а FPC. Поэтому перекомпилировать нужно именно его. Для этого Вам нужно скачать исходники fpc.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: вопрос по PostgreSQL

Сообщение Nadin » 23.07.2009 12:35:21

Самое забавное, что увеличив в Postgres длину поля на 5 символов всё отлично отображается. Хотя в базе-то хватало и так символов.
Nadin
новенький
 
Сообщения: 10
Зарегистрирован: 22.07.2009 11:58:59
Откуда: Красноярск

Re: вопрос по PostgreSQL

Сообщение Logo » 23.07.2009 13:52:25

Я выше по топику пояснял эту проблему. Это в pgconnection выделяется буфер по количеству символов, а не по количеству байт, а UTF8 имеет два байта на символ, вот и получается, что половина кирилицы обрезается. Латинские символы и цифры проходят правильно.

Добавлено спустя 13 минут 57 секунд:
исходники fpc лучше брать из svn :
svn checkout http://svn.freepascal.org/svn/fpc/trunk fpc-2.3.x
здесь вносятся все последние правки.

Оригинальный файл fpc-2.3.x/packages/fcl-db/src/sqldb/postgres/pqconnection.pp переименуйте, а вместо него запишите патченый.
Затем зайдя в каталог fpc-2.3.x, наберите команду make clen all. Если не найдет компилятор, то наберите make clean all PP=ПУТЬ_К_КОМПИЛЯТОРУ/ФАЙЛ_КОМПИЛЯТОРА.
После завершения компиляции, инсталлируем новую версию:
make install

только после компиляции fpc перекомпилируем Lazarus. Проблема исчезнет.
Постарайтесь освоить этот процесс, это поможет в будущем легко вносить правки и изменения.
Logo
постоялец
 
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Re: вопрос по PostgreSQL

Сообщение grigoreo » 24.07.2009 11:17:36

Nadin писал(а):Самое забавное, что увеличив в Postgres длину поля на 5 символов всё отлично отображается. Хотя в базе-то хватало и так символов.


Nadin предлагаю пока не заморачиватся на этой проблеме делайте пока для рускоязычных полей длину поля умноженую на 2 , если вы используете тип varchar он все равно упаковывается и не будет занимать больше места в файлах таблицы чем по физической длине конкретно взятой строки.
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по PostgreSQL

Сообщение Nadin » 25.07.2009 17:31:55

Спасибо за ответы! Просто для поля, хранящего значения "М" и "Ж" пришлось сделать величину поля 2 символа, а не один. Я переписываю свой давний проект с VB6 база в MS Access на Lazarus и база на Postgres. Проект с кучей форм и таблиц много всяких. Так что вопросов будет много ещё. :) Теперь осталось ещё с выводом в Open Office разобраться. Из VB6 я сделала без проблем, а вот в Lazaruse придётся помучаться, судя по ответам на этом форуме.
Nadin
новенький
 
Сообщения: 10
Зарегистрирован: 22.07.2009 11:58:59
Откуда: Красноярск

Re: вопрос по PostgreSQL

Сообщение Vadim » 25.07.2009 18:13:21

Nadin
Здесь один человек предлагал компонент, который делает отчеты в файл OpenOffice Calc. Поищите поиском...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: вопрос по PostgreSQL

Сообщение grigoreo » 03.08.2009 12:59:18

Nadin писал(а):Просто для поля, хранящего значения "М" и "Ж" пришлось сделать величину поля 2 символа, а не один.


могла бы в Логику перегнать тут то всего 2 значения или мужчина или женщина (ну если конечно не учитывать извратов запада)) )
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по PostgreSQL

Сообщение Nadin » 19.10.2009 11:34:49

Если бы дело было только в вопросе выбора пола. :) У меня же полно других символьных полей.
Nadin
новенький
 
Сообщения: 10
Зарегистрирован: 22.07.2009 11:58:59
Откуда: Красноярск

Re: вопрос по PostgreSQL

Сообщение grigoreo » 19.10.2009 12:19:18

Nadin писал(а):Если бы дело было только в вопросе выбора пола. :) У меня же полно других символьных полей.


ну я пока эту дыру заляпал удвоением типа varchar , физически риска нету благо этот тип только ограничивается цифрой максимума, но физически строки упаковываются так что база не распухнет
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по PostgreSQL

Сообщение Андрей Варкентин » 01.10.2010 12:03:10

Господа, у меня такая же проблема с DBGrid'ом, только подключаюсь к SQLite3 компонентом TSQLite3Connection из вкладки SQLdb. Кодировку использую UTF-8, лазарь версии 0.29.27526, fpc 2.4.3. Может в fpc 2.4.0 эта проблема отсутствует? Есть ли вариант решения проблемы без удвоения символьных полей в базе? Кто и как решает эту проблему?
Если есть решение - ткните меня лицом.
Андрей Варкентин
новенький
 
Сообщения: 21
Зарегистрирован: 17.09.2010 11:56:14

Re: вопрос по PostgreSQL

Сообщение grigoreo » 01.10.2010 14:34:11

Андрей Варкентин писал(а):Господа, у меня такая же проблема с DBGrid'ом, только подключаюсь к SQLite3 компонентом TSQLite3Connection из вкладки SQLdb. Кодировку использую UTF-8, лазарь версии 0.29.27526, fpc 2.4.3. Может в fpc 2.4.0 эта проблема отсутствует? Есть ли вариант решения проблемы без удвоения символьных полей в базе? Кто и как решает эту проблему?
Если есть решение - ткните меня лицом.


Дык предлагаю вообще не использовать ограничение по размеру, думаю на скорости это не отразится во всяком случае по моим тестам даже чуток быстее стало, единственный момент это ширина колонок грида по дефолту будут самыми большими, но у меня полюбому была надобность для каждого пользователя держать персональные настройки поэтому ити данные всегда переопределялись в зависимости от предпочтений конкрретного юзверя))
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: вопрос по PostgreSQL

Сообщение Андрей Варкентин » 15.10.2010 13:42:24

grigoreo, спасибо за совет. Действительно данный способ работает нормально.
Андрей Варкентин
новенький
 
Сообщения: 21
Зарегистрирован: 17.09.2010 11:56:14

Re: вопрос по PostgreSQL

Сообщение delphiec » 23.10.2011 11:13:11

Народ пожалуйста напишите как сделать селект и инсерт в постгрес с помощью зеоса на лазаре уже 2-ой день бьюсь ничего не получается, пишет bookmark was not found, непонятно вообще причем там букмарк, это происходит прилюбых действиях опен или коннект, буду очень благодарен если кто нибудь вышлет рабочий пример на delphiec90@mail.ru
delphiec
незнакомец
 
Сообщения: 5
Зарегистрирован: 23.10.2011 11:09:03

Re: вопрос по PostgreSQL

Сообщение Vadim » 24.10.2011 02:59:35

delphiec
Zeos какой версии?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru