Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
ВМоисеев,

На картинке плохо видно - можно пример в виде SQL скрипта на создание объекта - в котором происходит ошибка?
Или так - при нажати компиляции выдаётся окно компиляции с текстом SQL - его тоже пойдёт.
Как я могу увидеть - там русские идентификаторы где-то есть? Уж очень картинка замытая.
14 ноя 19, 14:25    [22016277]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2085
>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]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
ВМоисеев,

Спасибо. Действительно - проблема в не ASCII символах в идентификаторах. Поправлю.
14 ноя 19, 15:38    [22016373]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
ВМоисеев,

Собрал новую версию.
Доработал поддержку национальных (русских) символов в наименованиях объектов. Должно заработать.
Пока только для PG.
Также добавил настройку на протоколирование исполнения SQL script-а.
15 ноя 19, 15:13    [22017346]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
Сисдба Мастеркеевич
Member

Откуда:
Сообщений: 394
Было бы здорово в выгрузке метаданных:
1. Спрашивать подтверждение перезаписи при сохранении файла скрипта.
2. Запоминать предыдущую директорию в диалоговом окне для сохранения файла.
3. Уметь выгружать отдельно констрейнты для таблиц.
4. Уметь выгружать каждый объект в отдельный файл.
5. Не добавлять группу по двойному щелчку, а только раскрывать ее (в окошке выбора объектов для извлечения).
6. Непонятно, что делает кнопка Ok.
19 ноя 19, 09:30    [22019332]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
Сисдба Мастеркеевич
Было бы здорово в выгрузке метаданных:
1. Спрашивать подтверждение перезаписи при сохранении файла скрипта.
2. Запоминать предыдущую директорию в диалоговом окне для сохранения файла.
3. Уметь выгружать отдельно констрейнты для таблиц.
4. Уметь выгружать каждый объект в отдельный файл.
5. Не добавлять группу по двойному щелчку, а только раскрывать ее (в окошке выбора объектов для извлечения).
6. Непонятно, что делает кнопка Ok.


Принял
Постараюсь реализовать.
19 ноя 19, 11:29    [22019442]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
Новая версия
+ Доделал поддержку национальных символов для SQLite и Firebird.
Надеюсь - всё охватил.
+ Большие доработки выгрузки метаданных:
1. Добавлены режимы выгрузки - в файл, в буфер обмена, в редактор скриптов, в раздельные файлы для каждого объекта выгрузки;
2. Реализовал настройку на выгрузку всех объектов
3. В форме выгрузки метаданных добавил навигацию по страницам.
4. В форме выгрузки метаданных процесс выгрузки запускается по нажатию кнопки ОК. Кнопка доступна при активации последней вкладки.
5. Дабл-клик по объекту выгрузки в дереве переносит его в дерево выгрузки. Развернуть ветку можно через символ + в дереве.
+ В редакторе SQL для команды "Сохранить как" добавлен контроль существования файла для перезаписи
20 ноя 19, 15:29    [22020824]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
Только что поймал такой глюк: Есть функция с значениями параметров по умолчанию
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]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin,
Спасибо. Проверю.
22 ноя 19, 21:54    [22023312]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6330
alexs75
...они умудрились испортить интерфейс IBExpert-а....
Это невозможно.. =)

А за стартап весьма поддерживаю - у ПГ недостаточно удобных админок АФАИК.
22 ноя 19, 22:14    [22023320]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
alexs75
DSKalugin,
Спасибо. Проверю.

Обновился до последней сегодняшней версии - тоже самое

И пожелание: как в IBExpert-е хочется видеть количество измененных/вставленных/удаленных записей при update/insert/delete операциях
Картинка с другого сайта.

Спасибо!
22 ноя 19, 22:18    [22023325]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin,

Ошибку с отображением параметров по умолчанию поправил. Должно работать. Вопрос подтолкнул меня наконец таки разобраться с внутренним представлением параметров по молчанию в PG. Так что спасибо!
В ночной сборке должны уже быть изменения.

Насчёт кол-ва вставленных/изменённых записей - записал в список хотелок. По мере возможности - сделаю.
22 ноя 19, 23:53    [22023368]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
alexs75
DSKalugin,
*** Вопрос подтолкнул меня наконец таки разобраться с внутренним представлением параметров по молчанию в PG. ***

Это не фича PG. Дефолтные значения параметров процедур есть и у Firebird и у T-SQL
23 ноя 19, 14:28    [22023567]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin
alexs75
DSKalugin,
*** Вопрос подтолкнул меня наконец таки разобраться с внутренним представлением параметров по молчанию в PG. ***

Это не фича PG. Дефолтные значения параметров процедур есть и у Firebird и у T-SQL

Я просто не разбирался раньше как они в системном каталоге хранятся. Сам я дефолтные параметры не люблю - и стараюсь не использовать. Просто это хороший путь к совершению глупых ошибок. Предпочитаю явно всегда требовать значения при вызове процедур/функций. Поэтому и не проработал тут этот вопрос.
23 ноя 19, 15:53    [22023590]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin
alexs75
DSKalugin,
Спасибо. Проверю.

Обновился до последней сегодняшней версии - тоже самое

И пожелание: как в IBExpert-е хочется видеть количество измененных/вставленных/удаленных записей при update/insert/delete операциях
Картинка с другого сайта.

Спасибо!

В сборке за 24.12.2019 будет уже и отображение кол-ва изменёных записей.
Параметры со значениями по умолчанию заработали?
23 ноя 19, 22:52    [22023766]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
alexs75

В сборке за 24.12.2019 будет уже и отображение кол-ва изменёных записей.

Спасибо, Алексей! По предыдущему примеру вижу следующее:
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 ***"
alexs75

Параметры со значениями по умолчанию заработали?

Значения по умолчанию отображаются, перекомпиляция такой функции уже работает... но редактирование этих значений не работает. Окно для редактирования параметров открывется с пустым значением по умолчанию. Вписываю значение False, жму OK - ничего не меняется ни в интерфейсе ни в исходнике DDL
Картинка с другого сайта.
25 ноя 19, 12:22    [22024511]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
Хотел собрать из исходников, но слишком много сторонних пакетов нужно доустановить в Лазарус. Как-нибудь сделаю это.
А пока, для распространения FreeDataBaseManager на системы Debian, Ubuntu, Mint и производные нашел простое решение - Convert RPM to DEB and DEB to RPM Package Using Alien
25 ноя 19, 13:15    [22024569]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin

Но загадочный "File not open" остался.

А что указано в регистрационных параметрах БД? В частности - протоколирование редактора SQL?
Вроде с файлами там только это может быть

DSKalugin

Интересно будет посмотреть на результат выполнения функции, где выполняются разные действия за один вызов или на "INSERT INTO FN() values() ON CONFLICT() DO update ***"

Поведение абсолютно аналогично PgAdmin3 - только кол-во записей из запроса верхнего уровня - т.е. из запроса редактора.
Если функция возвращает 1 строку (результат) - то будет 1.
DSKalugin

Значения по умолчанию отображаются, перекомпиляция такой функции уже работает... но редактирование этих значений не работает. Окно для редактирования параметров открывется с пустым значением по умолчанию. Вписываю значение False, жму OK - ничего не меняется ни в интерфейсе ни в исходнике DDL

Посмотрим дельше.
25 ноя 19, 13:17    [22024578]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
alexs75
DSKalugin

Но загадочный "File not open" остался.

А что указано в регистрационных параметрах БД? В частности - протоколирование редактора SQL?

Файл протокола SQL=C:\Program Files (x86)\FreeDataBaseManager\SQLhistory\work.log
Но самого файла work.log там нет. Сделал пустой файл - не помогло. Или нет прав на эту системную папку или путь с пробелами.
25 ноя 19, 15:31    [22024762]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
И еще заметил когда менял владельца таблицы, (подозреваю, что при любых изменениях DDL)
ALTER TABLE ооо.ааа OWNER TO бэбэбэ;
Кнопка "Обновить" в разделе DDL не обновляет исходник при изменениях в "Редактор SQL скриптов".
Если закрыть окно структуры таблицы и "Обновить данные" в делеве объектов БД и повторно открыть структуру таблицы DDL тогда изменения видны
25 ноя 19, 15:46    [22024786]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin

Файл протокола SQL=C:\Program Files (x86)\FreeDataBaseManager\SQLhistory\work.log
Но самого файла work.log там нет. Сделал пустой файл - не помогло. Или нет прав на эту системную папку или путь с пробелами.

Вот оно
Эта вкладка предназначена для ведения истории запросов, которые пользователь выполняет
Тут надо естственно указывать папку, куда пользователь имеет права на запись.
Либо вообще не включать.

Для меня особенно важно протоколирование изменения метаданных - по факту я получаю при проектировании своей тестовой БД скрипт на изменение боевых экземпляров.

DSKalugin
И еще заметил когда менял владельца таблицы, (подозреваю, что при любых изменениях DDL)
ALTER TABLE ооо.ааа OWNER TO бэбэбэ;
Кнопка "Обновить" в разделе DDL не обновляет исходник при изменениях в "Редактор SQL скриптов".
Если закрыть окно структуры таблицы и "Обновить данные" в делеве объектов БД и повторно открыть структуру таблицы DDL тогда изменения видны

Есть такая буква. В планах стоит после выполнения DDL команды в SQL редакторе/SQLscript - обновления дерева объектов.
Руки не доходят доделать.
25 ноя 19, 16:21    [22024831]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
Загадочный Тип 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]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
alexs75
Member

Откуда:
Сообщений: 49
DSKalugin,
Сразу видно то, чем сам не пользуюсь :-)
Спасибо. Проверю.
27 ноя 19, 19:59    [22027008]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
GeniyZ
Member

Откуда: Ростов-на-Дону
Сообщений: 46
DSKalugin,

Немного не в тему вопрос, но очень уж интересно, в чём профит использования типа money?

Мне уже несколько раз приходилось переписывать код с money на numeric(например 19,2).
ИМХО, с числами работать проще, а в чём преимущество money - не осознаю.
28 ноя 19, 12:46    [22027522]     Ответить | Цитировать Сообщить модератору
 Re: Инструмент для рабработки БД  [new]
DSKalugin
Member

Откуда: Мать городов русских
Сообщений: 355
GeniyZ
в чём профит использования типа money?
Мне уже несколько раз приходилось переписывать код с money на numeric(например 19,2).
ИМХО, с числами работать проще, а в чём преимущество money - не осознаю.

Изначально интуитивно для денежных значений сделал тип полей money.
С технической стороны - одни проблемы :-(( Самым сильным ударом было backup/restor в plain формате на сервер с другой локалью. (Выгружается как "12 254,45 Руб" с запятой и валютой как в конфиге прописано)
Со стороны отображения в контролах плюс в сегментации разрядов и в наличии символа валюты и то, только той валюты, которая указана в конфиге сервера :-)))))))

P.S. действительно лучше переделать на numeric при этом в C# это будет тип Decimal
28 ноя 19, 15:02    [22027775]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / PostgreSQL Ответить