![]() |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Доступен Pgfe 2, клиентский C++ API к PostgreSQL" | +/– | ![]() |
Сообщение от opennews (??), 18-Апр-22, 22:05 | ||
Опубликован первый стабильный выпуск Pgfe 2 (PostGres FrontEnd), продвинутого и многофункционального драйвера (клиентский API) для PostgreSQL, написанного на языке C++ и упрощающего работу с PostgreSQL в проектах на C++. Код проекта распространяется под лицензией Apache 2.0. Для сборки требуется компилятор с поддержкой стандарта C++17... | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения | [Сортировка по ответам | RSS] |
1. Сообщение от Аноним (1), 18-Апр-22, 22:05 | +/– | ![]() |
Есть сравнение с libpqxx? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #8, #20 |
5. Сообщение от Аноним (5), 18-Апр-22, 23:38 | –9 +/– | ![]() |
Второй тред этой темы что Постгря УГ. Даже яндекс еда работает на MySQL. Постргря безнадежно отстала в накручивании своих ненужных фич. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #6, #13 |
6. Сообщение от Аноним (6), 19-Апр-22, 01:13 | –7 +/– | ![]() |
Меня в постгре больше всего убило, что нельзя просто взять psql и соединиться с какой-нибудь удаленной постгрей. Версия должна совпадать, иначе она отказывается работать. Версия обязательно не совпадет. На локалхосте у вас одна, на проде или стейдже - другая. В конце концов получается, что нужно звонить по ссш на хост и там локально коннектиться к постгре с помощью psql который с ней заведомо совместим. MySQL между версиями 5.7 и 5.6 серьезно отличается, однако клиент работает между ними без проблем. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 Ответы: #7, #9, #12 |
7. Сообщение от Заноним (?), 19-Апр-22, 02:50 | +1 +/– | ![]() |
Ты какую-то дичь нагнал, psql обычно подключается даже старый клиент к новым серверам, просто warning'и накидывает. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 |
8. Сообщение от Аноним (8), 19-Апр-22, 02:51 | +3 +/– | ![]() |
libpq на чистом C очень простая, приятная и удобная в работе вещь! Забудь про биндинги к плюсам (за исключением универсальных либ с возможностью поменять драйвер СУБД), там сложнее и хуже. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 Ответы: #17 |
9. Сообщение от aaaaa (?), 19-Апр-22, 02:55 | +2 +/– | ![]() |
болеешь? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 |
10. Сообщение от Аноним (10), 19-Апр-22, 03:14 | +2 +/– | ![]() |
Когда-то писал свой драйвер Postges для C++. Подключение было неблокирующее по бинарному протоколу с динамической генерацией конвертации из бинарных данных Postgres в переменные C++ и обратно. С помощью шаблонов во время компиляции определялся тип переменной C++, а во время рантайма запрашивались типы полей в базе. Так становилось понятно, какие типы куда конвертировать. Далее генерировались функции преобразования из, например, PG:bigint в C++:int32 для ответов и обратно для запросов. Для этого изначально компилировался объектник с разными преобразованиями и из него в mmaped память копировались тела нужных функций в нужном порядке с релокациями (в результате для преобразования нужно было обратиться к одной большой функции конвертации через указатель - остальное линейный код, т.е. для select bigint, real, varchar в int, float, string генерировалась фукнция преобразования трех переменных из байтового массива, пришедшего от Postgres). Делается через mmap(), запись туда кода, mprotect(m, size, PROT_READ | PROT_EXEC) и вызов кода по указателю (в общем, все, как в Java/UPX). | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
11. Сообщение от aaaaa (?), 19-Апр-22, 04:24 | +1 +/– | ![]() |
как в сравнении с yandex/ozo? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #21 |
12. Сообщение от Аноним (12), 19-Апр-22, 07:49 | +/– | ![]() |
> нельзя просто взять psql и соединиться с какой-нибудь удаленной постгрей | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 |
13. Сообщение от Аноним (13), 19-Апр-22, 07:51 | +/– | ![]() |
Очень толстый вброс. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 |
14. Сообщение от Аноним (-), 19-Апр-22, 08:11 | +3 +/– | ![]() |
Как ни крути, а библиотеки должны быть с сишным интерфейсом. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #15 |
15. Сообщение от Аноним (15), 19-Апр-22, 10:25 | –4 +/– | ![]() |
Прикол в том, что для конечного программиста максимально удобной является обертка в ООП, причем даже визуальное или полу-визуальное. Фиг знает, как это правильно объяснить. Но мне вот самому не удобно работать со всеми этими низкоуровневыми интерфейсами, так что возникает естественное желание обернуть все в ООП. Оно естественное чисто потому, что так тупо будет меньше кода. А количество кода = трудозатраты программиста. Так зачем каждый раз изобретать велосипед? Именно поэтому мне нравится идея Delphi/Lazarus и очень жаль, что для C++ нет свободной альтернативы C++ Builder. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #14 Ответы: #16, #19, #24, #25 |
16. Сообщение от Аноним (16), 19-Апр-22, 10:32 | +/– | ![]() |
Для этого есть Qt. Но есть нюанс :] | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
17. Сообщение от Аноним (17), 19-Апр-22, 12:18 | +/– | ![]() |
>Забудь про биндинги к плюсам | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #8 Ответы: #26, #30 |
19. Сообщение от Аноним (12), 19-Апр-22, 13:57 | +/– | ![]() |
> максимально удобной является обертка в ООП | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
20.
Сообщение от dmitigr![]() | +4 +/– | ![]() |
Если вкратце, то Pgfe предоставляет гораздо более богатый набор возможностей, современней и является отечественным ПО ;-) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 |
21.
Сообщение от dmitigr![]() | +1 +/– | ![]() |
Гораздо больше возможностей. В версии 2.1 будет добавлен API асинхронного ввода/вывода на базе обратных вызовов, что позволит использовать Pgfe в приложениях с циклом событий на базе разных его реализаций (в первую очередь, на базе libuv, но, вероятно, будет и поддержка ASIO, как в Ozo). | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #22 |
22. Сообщение от aaaaa (?), 19-Апр-22, 18:42 | +/– | ![]() |
Дмитрий, приветствую! Спасибо за обратную связь! | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #21 Ответы: #23 |
23.
Сообщение от dmitigr![]() | +1 +/– | ![]() |
Постараюсь добавить поддержку ASIO. Issue по данной задаче -- https://github.com/dmitigr/pgfe/issues/14 | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #22 |
24. Сообщение от Аноним (-), 19-Апр-22, 19:58 | +/– | ![]() |
Удобство это только одна сторона медали. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
25. Сообщение от Аноним (-), 19-Апр-22, 19:59 | +/– | ![]() |
>Но мне вот самому не удобно работать со всеми этими низкоуровневыми интерфейсами, так что возникает естественное желание обернуть все в ООП | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 |
26. Сообщение от Аноним (26), 19-Апр-22, 21:20 | +/– | ![]() |
> Без классов - не по феншую. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #17 |
30. Сообщение от adolfus (ok), 23-Апр-22, 02:10 | +/– | ![]() |
ООП плохо стыкуется с базами данных. Причем на всех уровнях -- от ISAM, что внизу, до SQL, что над ним. Паридигмы несовместимы. В С++ выручает только то, что это не ОО язык, а язык с некоторыми элементами ООП, которые можно просто отодвинуть в сторону. На бейсике удобнее с базами работать, нежели на любом из ОО языков. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #17 |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |