Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / PostgreSQL |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
alexs75 Member Откуда: Сообщений: 54 |
ВМоисеев, На картинке плохо видно - можно пример в виде SQL скрипта на создание объекта - в котором происходит ошибка? Или так - при нажати компиляции выдаётся окно компиляции с текстом SQL - его тоже пойдёт. Как я могу увидеть - там русские идентификаторы где-то есть? Уж очень картинка замытая. |
14 ноя 19, 14:25 [22016277] Ответить | Цитировать Сообщить модератору |
ВМоисеев Member Откуда: Редкино Сообщений: 2491 |
>alexs75, сегодня, 14:25 [22016277] >...Как я могу увидеть - там русские идентификаторы где-то есть? <Постоянно применяю русские идентификаторы, как по смыслу, так и по написанию CREATE OR REPLACE FUNCTION public.au01_языки_sel( IN $pk_Entity uuid, IN $str_Язык varchar, IN $int_Limit integer) RETURNS refcursor AS $BODY$ declare id0 uuid := '00000000-0000-0000-0000-000000000000'; rfc refcursor; begin if "$pk_Entity" != id0 then open rfc for SELECT t.* FROM "tbl01_Языки" t WHERE t."pk_Entity" = "$pk_Entity" LIMIT(1); else open rfc for SELECT t.* FROM "tbl01_Языки" t WHERE (t."pk_Entity" <> id0) AND (("$str_Язык" IS NULL) OR (t."str_Язык" LIKE "$str_Язык")) ORDER BY t."str_Язык" LIMIT("$int_Limit"); end if; return rfc; end;$BODY$ LANGUAGE plpgsql COST 100 VOLATILE; |
14 ноя 19, 15:36 [22016370] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
ВМоисеев, Спасибо. Действительно - проблема в не ASCII символах в идентификаторах. Поправлю. |
14 ноя 19, 15:38 [22016373] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
ВМоисеев, Собрал новую версию. Доработал поддержку национальных (русских) символов в наименованиях объектов. Должно заработать. Пока только для PG. Также добавил настройку на протоколирование исполнения SQL script-а. |
15 ноя 19, 15:13 [22017346] Ответить | Цитировать Сообщить модератору |
Сисдба Мастеркеевич Member Откуда: Сообщений: 402 |
Было бы здорово в выгрузке метаданных: 1. Спрашивать подтверждение перезаписи при сохранении файла скрипта. 2. Запоминать предыдущую директорию в диалоговом окне для сохранения файла. 3. Уметь выгружать отдельно констрейнты для таблиц. 4. Уметь выгружать каждый объект в отдельный файл. 5. Не добавлять группу по двойному щелчку, а только раскрывать ее (в окошке выбора объектов для извлечения). 6. Непонятно, что делает кнопка Ok. |
19 ноя 19, 09:30 [22019332] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
Принял Постараюсь реализовать. |
||||
19 ноя 19, 11:29 [22019442] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
Новая версия + Доделал поддержку национальных символов для SQLite и Firebird. Надеюсь - всё охватил. + Большие доработки выгрузки метаданных: 1. Добавлены режимы выгрузки - в файл, в буфер обмена, в редактор скриптов, в раздельные файлы для каждого объекта выгрузки; 2. Реализовал настройку на выгрузку всех объектов 3. В форме выгрузки метаданных добавил навигацию по страницам. 4. В форме выгрузки метаданных процесс выгрузки запускается по нажатию кнопки ОК. Кнопка доступна при активации последней вкладки. 5. Дабл-клик по объекту выгрузки в дереве переносит его в дерево выгрузки. Развернуть ветку можно через символ + в дереве. + В редакторе SQL для команды "Сохранить как" добавлен контроль существования файла для перезаписи |
20 ноя 19, 15:29 [22020824] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Только что поймал такой глюк: Есть функция с значениями параметров по умолчаниюCREATE OR REPLACE FUNCTION zakupki_gov_ru.fbpy_export_contract44(d_from date, d_to date, delay_flag boolean DEFAULT true, not_processing_flag boolean DEFAULT true) RETURNS integer LANGUAGE plpython3u SECURITY DEFINER AS $function$ FreeDataBaseManager от 20-11-2019 не может перекомпилировать(сохранить изменения) т.к. не видит DEFAULT true CREATE FUNCTION zakupki_gov_ru.fbpy_export_contract44( IN d_from date, IN d_to date, IN delay_flag boolean, IN not_processing_flag boolean) RETURNS integer AS $BODY$ попытка заполнить их через форму интерфейса не помогает, значения TRUE не сохраняются ![]() ![]() |
22 ноя 19, 21:48 [22023310] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
DSKalugin, Спасибо. Проверю. |
22 ноя 19, 21:54 [22023312] Ответить | Цитировать Сообщить модератору |
Siemargl Member Откуда: 010100 Сообщений: 6372 |
А за стартап весьма поддерживаю - у ПГ недостаточно удобных админок АФАИК. |
||||
22 ноя 19, 22:14 [22023320] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Обновился до последней сегодняшней версии - тоже самое И пожелание: как в IBExpert-е хочется видеть количество измененных/вставленных/удаленных записей при update/insert/delete операциях ![]() Спасибо! |
||||
22 ноя 19, 22:18 [22023325] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
DSKalugin, Ошибку с отображением параметров по умолчанию поправил. Должно работать. Вопрос подтолкнул меня наконец таки разобраться с внутренним представлением параметров по молчанию в PG. Так что спасибо! В ночной сборке должны уже быть изменения. Насчёт кол-ва вставленных/изменённых записей - записал в список хотелок. По мере возможности - сделаю. |
22 ноя 19, 23:53 [22023368] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Это не фича PG. Дефолтные значения параметров процедур есть и у Firebird и у T-SQL |
||||
23 ноя 19, 14:28 [22023567] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
Я просто не разбирался раньше как они в системном каталоге хранятся. Сам я дефолтные параметры не люблю - и стараюсь не использовать. Просто это хороший путь к совершению глупых ошибок. Предпочитаю явно всегда требовать значения при вызове процедур/функций. Поэтому и не проработал тут этот вопрос. |
||||||||
23 ноя 19, 15:53 [22023590] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
В сборке за 24.12.2019 будет уже и отображение кол-ва изменёных записей. Параметры со значениями по умолчанию заработали? |
||||||||
23 ноя 19, 22:52 [22023766] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Спасибо, Алексей! По предыдущему примеру вижу следующее: Update on timevalues (cost=0.00..1.06 rows=4 width=16) -> Seq Scan on timevalues (cost=0.00..1.06 rows=4 width=16) [b]Изменено строк : 4[/b] File not open Но загадочный "File not open" остался. Интересно будет посмотреть на результат выполнения функции, где выполняются разные действия за один вызов или на "INSERT INTO FN() values() ON CONFLICT() DO update ***"
Значения по умолчанию отображаются, перекомпиляция такой функции уже работает... но редактирование этих значений не работает. Окно для редактирования параметров открывется с пустым значением по умолчанию. Вписываю значение False, жму OK - ничего не меняется ни в интерфейсе ни в исходнике DDL ![]() |
||||||||
25 ноя 19, 12:22 [22024511] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Хотел собрать из исходников, но слишком много сторонних пакетов нужно доустановить в Лазарус. Как-нибудь сделаю это. А пока, для распространения FreeDataBaseManager на системы Debian, Ubuntu, Mint и производные нашел простое решение - Convert RPM to DEB and DEB to RPM Package Using Alien |
25 ноя 19, 13:15 [22024569] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
А что указано в регистрационных параметрах БД? В частности - протоколирование редактора SQL? Вроде с файлами там только это может быть
Поведение абсолютно аналогично PgAdmin3 - только кол-во записей из запроса верхнего уровня - т.е. из запроса редактора. Если функция возвращает 1 строку (результат) - то будет 1.
Посмотрим дельше. |
||||||||||||
25 ноя 19, 13:17 [22024578] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Файл протокола SQL=C:\Program Files (x86)\FreeDataBaseManager\SQLhistory\work.log Но самого файла work.log там нет. Сделал пустой файл - не помогло. Или нет прав на эту системную папку или путь с пробелами. |
||||||||
25 ноя 19, 15:31 [22024762] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
И еще заметил когда менял владельца таблицы, (подозреваю, что при любых изменениях DDL) ALTER TABLE ооо.ааа OWNER TO бэбэбэ; Кнопка "Обновить" в разделе DDL не обновляет исходник при изменениях в "Редактор SQL скриптов". Если закрыть окно структуры таблицы и "Обновить данные" в делеве объектов БД и повторно открыть структуру таблицы DDL тогда изменения видны |
25 ноя 19, 15:46 [22024786] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
Вот оно Эта вкладка предназначена для ведения истории запросов, которые пользователь выполняет Тут надо естственно указывать папку, куда пользователь имеет права на запись. Либо вообще не включать. Для меня особенно важно протоколирование изменения метаданных - по факту я получаю при проектировании своей тестовой БД скрипт на изменение боевых экземпляров.
Есть такая буква. В планах стоит после выполнения DDL команды в SQL редакторе/SQLscript - обновления дерева объектов. Руки не доходят доделать. |
||||||||
25 ноя 19, 16:21 [22024831] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Загадочный Тип Money. Полдня дебажил, почему нули заходят в БД. Потом выполнил запрос в бобре (DBeaver) и увидел НЕнули , там , где FreeDataBaseManager показывает нули для типа Money. В DDL он не даже подсвечивается. CREATE TABLE test.demo_money_val( m_int4 int4, m_val Money ); insert into test.demo_money_val(m_int4, m_val) values (1, 3456.36),(2, 2345.44),(3, 45.98); select * from test.demo_money_val; ![]() Сообщение было отредактировано: 27 ноя 19, 19:56 |
27 ноя 19, 19:54 [22027005] Ответить | Цитировать Сообщить модератору |
alexs75 Member Откуда: Сообщений: 54 |
DSKalugin, Сразу видно то, чем сам не пользуюсь :-) Спасибо. Проверю. |
27 ноя 19, 19:59 [22027008] Ответить | Цитировать Сообщить модератору |
GeniyZ Member Откуда: Ростов-на-Дону Сообщений: 52 |
DSKalugin, Немного не в тему вопрос, но очень уж интересно, в чём профит использования типа money? Мне уже несколько раз приходилось переписывать код с money на numeric(например 19,2). ИМХО, с числами работать проще, а в чём преимущество money - не осознаю. |
28 ноя 19, 12:46 [22027522] Ответить | Цитировать Сообщить модератору |
DSKalugin Member Откуда: Мать городов русских Сообщений: 379 |
Изначально интуитивно для денежных значений сделал тип полей money. С технической стороны - одни проблемы :-(( Самым сильным ударом было backup/restor в plain формате на сервер с другой локалью. (Выгружается как "12 254,45 Руб" с запятой и валютой как в конфиге прописано) Со стороны отображения в контролах плюс в сегментации разрядов и в наличии символа валюты и то, только той валюты, которая указана в конфиге сервера :-))))))) P.S. действительно лучше переделать на numeric при этом в C# это будет тип Decimal |
||||
28 ноя 19, 15:02 [22027775] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Все форумы / PostgreSQL | ![]() |