PostgreSQL, Qt, Базы данных

Файл паролей PostgreSQL pgpass в Windows

Для восстановления базы данных из резервной копии используется исполняемый файл сервера pg_restore. Если в настройках сервера выставлена авторизация по имени и паролю, то при использовании утилиты необходимо вводить пароль при каждой операции восстановления БД из бэкапа. Что не подходит в случае пакетной операции, например, или когда операция должна производится без взаимодействия с пользователем в этом ключе. Тогда сервер использует файл паролей pgpass. Он может и отсутствовать. Что тогда делать? Создать и обновлять. Продолжить чтение «Файл паролей PostgreSQL pgpass в Windows»

PostgreSQL, Qt, Базы данных

Путь к каталогу bin PostgreSQL Windows

Задача: получить значение пути к каталогу бинарников сервера — к каталогу bin. Путь к каталогу data, как и прочие значения параметров времени выполнения, найти совершенно несложно: достаточно выполнить запрос show, воспользоваться функцией current_setting() или обратиться к представлению pg_settings:

show data_directory;
select current_setting('data_directory');
select setting from pg_settings 
   where name = 'data_directory';
Три равнозначных примера получения значения пути к каталогу data

Еще парочку примеров показывала вот в этой записи: Количество подключений к БД PostgreSQL.

С значением пути к каталогу bin не все так просто — запросом его не получишь. Но можно узнать из реестра. В реестре не хранится чистый ключ со значением пути к каталогу, к сожалению, но можно узнать путь к исполняемому файлу службы сервера.

Итак, интересующий нас ключ: Продолжить чтение «Путь к каталогу bin PostgreSQL Windows»

"Нет" выгоранию, Мысли вслух

«Нет» выгоранию: Подпитка ресурсов

У меня уже несколько (целых два!) постов насобиралось на тему выгорания, кстати говоря 🙂 Даже интересно. Сразу небольшое отступление и реклама этих самых постов:

Сегодня хочу добавить еще один в копилку. Речь пойдет о возобновлении ресурсов, жизненных сил. День за днем выполняя одни и те же действия, в конечном итоге покажется, что красок в жизни нет и все какие-то серенькое и обыденное. Да и силы и желание работать и творить стремятся к нулю. Суета утомляет. И здесь важно остановиться и подумать: «Что же мне действительно сейчас хочется сделать?» Конечно, такой вопрос задать себе проще, если не зависишь от определенного графика работы и возможностей отвлечься не так много. Но здесь у себя в недоблоге я больше говорю о таком же типе работы, как у меня — удаленной. Хотя выходные же есть у всех, на них можно хотя бы немножечко себя подпитать.

Что нужно сделать? Определенно не нужно думать о работе. Все, с ней связанное, немного отставьте в сторону. И спросите себя: «Чего я сейчас хочу?» Хорошо бы, чтобы ответом не была еда 🙂 И рекомендую ограничить использование «экранов»: игры, соцсети, новостная лента и пр. — все это, наоборот, только высосет еще больше сил из вас. Уделите больше времени вашему хобби, вспомните, чем раньше вы были очень увлечены, если хобби подзабылось. А, может, попробуете что-то новое?

Одним утром я отвела дочь в детский сад, сама возвращалась домой, как раз двигаясь на восток. На горизонте зарождалась великолепная картина — небо понемногу озарял алый рассвет. Я решила, что работу можно и сдвинуть на полчаса позже, а вместо этого понаблюдать за рассветом. Просто посидеть на скамейке у реки и встретить рассвет. Я закрыла глаза и прислушалась к звукам утра: небольшие волны шумели, встречаясь с берегом, где-то далеко лаяла собака, еще дальше слышались сигналы машин, пели птицы, перешептывались листья на деревьях, дул небольшой ветерок, касаясь моих волос…

Изначально человек жил в ладу с природой. Человеку необходимо это единение с природой, чтобы быть в ладу с собой. Остановиться и просто вдохнуть момент, прожить его. Момент за моментом… Не откладывать жизнь на потом.

Еще мне захотелось поставить «скрытую камеру» и понаблюдать за птичками в нашей кормушке 🙂 Потребовались установка штатива и смена объектива. Результат: довольная я и «Не ожидала, что их будет столько много»!

"Нет" выгоранию, C++, PostgreSQL, Qt, Мысли вслух

Незамеченные записи 2019 года

Начнем еще одну традицию — заведем тему о скромных темах. Стоят там в сторонке, никто на них не смотрит 🙂

  1. «Нет» выгоранию: прогулки на свежем воздухе
  2. Волшебство в обычном месте
  3. Мини-путешествие к Браславским озёрам
  4. Jobs trace: Учет потраченного на проекты времени
  5. Няня вместо мамы для больничных детей
  6. Qt: Добавить свой виджет на форму
  7. DBRecordWidget — Библиотека-виджет для работы с данными (Qt)
  8. Вывод даты с указанием часового и минутного смещения timezone в PostgreSQL
  9. Количество подключений к БД PostgreSQL
  10. Изменить цвет фона и текста ячейки или строки QTableView
Microsoft SQL Server, PostgreSQL, Qt, SQL, Базы данных

Лучшие записи 2019 года

Продолжим традицию: ниже темы, имеющие наилучшую статистику посещений за 2019 год. Пост за прошлый год: Лучшие записи за 2018 год

  1. Основы баз данных. ER-модель (сущность-связь)
  2. Добавление данных в таблицу QTableWidget. Очистка таблицы
  3. Функция, возвращающая таблицу returns table — в PostgreSQL и MS SQL Server
  4. PostgreSQL: unnest(array)
  5. PostgreSQL: Размер таблиц и базы данных
  6. PostgreSQL: Узнать данные о колонках таблицы
  7. Получить значения полей выделенной строки QTableView
  8. Qt. Динамическое создание виджетов на форме
  9. Триггеры в PostgreSQL
  10. Подключение к базе данных в Qt
C++, Qt, Портфолио

Jobs trace: Учет потраченного на проекты времени

В сообщении Qt: Добавить свой виджет на форму уже немного рассказала по поводу вышеуказанной темы. А тема — небольшая программка Jobs trace 🙂

Я вписывала в Гугл таблицы проведенное время над тем или иным проектом или отдельным заданием и , исходя из этих данных, высчитывала стоимость работы. Но для меня такой вариант не очень удобен — каждый раз регистрировать время начала и конца, потом это все подводить к итогу и т.д. Мне показалось это муторным, я решила поискать какой-то онлайн подсчитыватель отработанного времени. Но все это было не то. Было решено — напишу так, как надо мне, чтобы было просто и удобно:

  • Признак начала и конца работы над проектом — один клик по кнопке
  • Автоматический расчет стоимости работы по введенной почасовой ставке
  • Сохранение данных текущих заданий
  • Возможность ведения нескольких заданий
  • Каждое задание на своей вкладке
  • Присваивать заданию пользовательское название
  • После переоткрытия приложения разворачивать данные уже имеющихся заданий
  • Удаление заданий кликом по кнопке

[metaslider id=819]

Данные задания записываются в текстовый файл с содержимым вида:

<Название задания>

<Количество потраченных на проект секунд>

<Почасовая ставка>

При постановке задания на паузу и при выходе из программы этот файл обновляется. Также записывается текущий лог хода работы над проектом в отдельный файл (в качестве дополнительной аналитической информации).

Сам проект Jobs trace можно посмотреть/скачать/склонировать на bitbucket.org: https://bitbucket.org/secretsilent/jobstrace/

Qt

Qt: Добавить свой виджет на форму

Допустим, у нас есть определенный набор виджетов, который нужно повторить на каждой странице объекта QTabWidget. Этих страниц может быть очень много. Один из самых удобных и простых способов создавать такие страницы с нужным набором элементов — это создать виджет с этим набором и помещать его на каждую новую страницу.

Для создания виджета сделаем следующее: Файл->Создать файл или проект…->Qt (Класс формы Qt Designer), в разделе templates/forms выбираем Widget. Нам необходимо, чтобы наша форма была потомком QWidget.

На новой форме располагаем все необходимые элементы. Например, вот так: Продолжить чтение «Qt: Добавить свой виджет на форму»

Qt, Базы данных

Добавление данных запроса в таблицу QTableWidget

Здесь: Добавление данных в таблицу QTableWidget. Очистка таблицы — я рассказала, как заполнить таблицу QTableWidget данными из объекта QMap. Можно сказать, через годы и расстояния :), я решила чуть больше развернуть эту тему и показать, как организовать добавление данных запроса в таблицу. Для тех, кому по какой-то причине нужно использовать объект QTableWidget вместо QTableView. Продолжить чтение «Добавление данных запроса в таблицу QTableWidget»

Мысли вслух

Няня вместо мамы для больничных детей

Сейчас мне хотелось бы написать пост, совсем не вписывающийся в сложившуюся тематику этого недоблога. Я обещала себе, что буду писать о том, что меня действительно интересует, тревожит, трогает, и пусть это не вписывается в чьи-то понятия правильности или последовательности мыслей. Это ж мой блог, и я могу быть непоследовательной, странной, для кого-то неинтересной и скучной. Я и раньше задумывалась на эту тему, то в одном месте прочитаю, то  в другом посмотрю. Но сегодня произошло какое-то странное стечение обстоятельств, алгоритмы сошлись неким таким образом, что везде мне рекомендовались материалы про сирот. Продолжить чтение «Няня вместо мамы для больничных детей»

PostgreSQL

Количество подключений к БД PostgreSQL

Чтобы узнать количество подключений к той или иной базе, воспользуйтесь запросом

select count(datid) from pg_stat_activity where datname = 'table_name'

Представление pg_stat_activity очень интересное: можно узнать последний выполненный запрос клиента, его IP, состояние и много чего другого, о чем можно прочитать в документации.

Чтобы узнать максимально возможное количество подключений, выполните запрос:

show max_connections;

А чтобы изменить это значение, придется прогуляться в файл конфигурации. Чтобы точно узнать его путь «лежки», можно выполнить нехитрый запрос:

show config_file;

А какие именно манипуляции с файлом производить, неплохо написано вот тут.

О том, как узнать размер таблиц и баз данных, можно ознакомиться в сообщении PostgreSQL: Размер таблиц и базы данных