Zeos и макросы

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

Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Zeos и макросы

Сообщение alexs »

После прсомотра вариантов работы с PostgreSQL пришёл к выводу, что лучше zeos на данный момент нет.
Но в нём нет макросов. Или я ошибаюсь?
Иначе прийдётся допиливать (RxQuery наше спасение)...
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

Сообщение grigoreo »

а уточните , что подразумеваете под термином - макросы
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Инструмент, позволяющий менять часть текста SQL запроса, без перезаписи все запроса.
В FBDataSet такая фича есть :wink: .
Ну уже, собственно говоря, вопрос решён. На основе ZQuery сделал новый компонен, в котором макросы есть.
Сейчас ломаю zeos на предмет нормально работы с UTF8.
Аватара пользователя
grigoreo
постоялец
Сообщения: 195
Зарегистрирован: 10.03.2009 14:43:43
Откуда: С нашей Раши

Сообщение grigoreo »

alexs писал(а):Сейчас ломаю zeos на предмет нормально работы с UTF8.


Вот это очень полезный момент ))
v-t-l
энтузиаст
Сообщения: 745
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

grigoreo писал(а):
alexs писал(а):Сейчас ломаю zeos на предмет нормально работы с UTF8.


Вот это очень полезный момент ))

согласен с предыдущим оратором.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

alexs писал(а): На основе ZQuery сделал новый компонен, в котором макросы есть.

ГДЕ-Е-Е ????? :shock:
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Little_Roo писал(а):ГДЕ-Е-Е ????? :shock:

Могу выложить на шаманграде...
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

alexs писал(а):
Little_Roo писал(а):ГДЕ-Е-Е ????? :shock:

Могу выложить на шаманграде...

Ждем-с :D
Да, а как забрать ?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

svn

Добавлено спустя 9 минут 22 секунды:
Готово
http://shamangrad.net/project.php?act=view&prj=zeos_ex
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 567
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

alexs писал(а):Сейчас ломаю zeos на предмет нормально работы с UTF8.

А что там не так с utf8?
какая версия zeos?

За ZMacroQuery спасибо!
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Что за макросы ? По моему достаточно ZSQLProcessor, в нем можно готовить какие угодно запросы и скрипты и сразу их выполнять.
А с utf8 там все нормально, я с mysql 5.1 работаю уже давно. А если чтото не так, то поможет SET NAMES UTF8 ;

Добавлено спустя 3 минуты 49 секунд:
В PostgreSQL тоже должен быть аналог этой команды (указание в какой кодировке клиент посылает данные на сервер)
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Ism писал(а):Что за макросы ?

Изменение части теста запроса на лету. Обычно применяю при формировании условия WHERE. Например - поиск по наимениванию или по ИНН или по коду клиента.
Ism писал(а):А с utf8 там все нормально, я с mysql 5.1 работаю уже давно

Компоненты не верно выделяют буфер для хранения строк.
Например - объявлено строковое поле длинной 10 символов. Компонента выделяет буфер длинной 10 байт. UTF8 символ может занимать до 6 байт. Вот в этом вся проблема.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Кстати пошлите ZMacroQuery авторам zeos , может примут, если юзабелен :)

Например - объявлено строковое поле длинной 10 символов. Компонента выделяет буфер длинной 10 байт.


А что мешает выделить 60 байт или сколько там нужно кратности ?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Ism писал(а):А что мешает выделить 60 байт или сколько там нужно кратности

Это я привёл для примера. Можно и больше - но проблема остаётся.
На самом деле проблема гораздо шире.
zeos читает из базы информацию о поле - 10 символов. Передаёт её в визуальные компоненты. Оператор вводит строку - 10 символов. Но так как буфер выделен в в 10 байт то физически сохранится в буфере 5 символов (русские символы - 2хбайтные). А если оператор при этом ещё в поле ввел число или английский символ (1 байт) то в русский символ в конце обрежится - и тут будет ещё и мат со стороны сервера (смолтри куды прёш - чего даёш мне сохранять?). Тоже самое и при чтении данных из БД. Символы режутся.

Например - у меня поле адреса контрагента 250 символов, и они используются на все 100%. Дам я адрес - 500 символов и их заколотят. Надо лечить ошибку, а не ставить костыли.
Аватара пользователя
Inferno
новенький
Сообщения: 78
Зарегистрирован: 20.03.2009 13:40:20
Откуда: Тюмень

Сообщение Inferno »

мх...Я тут пытался переделанную мной функцию ReadBlob для Oracle9i внести в исходники ZeosDBO когда NLS 1251, так парень бельгиец упорно не хотел вносить изменения...говорит сам доделай кусок у меня под Дельфи не компилируется. Не знаю чего он там мучился))) Убрать {$IFDEF FPC} да допилить надо было пару строчек. Плюнул сним переписываться. теперь просто беру злосчастную ReadBlob и меняю на свою при обновлении 8)
Ответить