Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

11 Август 2022, 01:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Запросы. Для чего они?  (Прочитано 885 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ириминаге
Всем бобра!
Форумчанин
***
Offline Offline

Сообщений: 63


« Стартовое сообщение: 16 Июнь 2022, 16:47 »

Здравствуйте! Возможно ли какое-то практическое применение запросам из пункта "Запросы" в основном окне программы, кроме просмотра?
Записан

Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 470



« Ответ #1: 16 Июнь 2022, 16:57 »

Запрос и нужен для просмотра, только отфильтрованного и такого вида, как вам надо
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #2: 16 Июнь 2022, 19:32 »

Сохраненные запросы можно использовать в коде по имени. Это избавляет вас от их составления программным путем. Вы подключаете их в качестве источника данных в формах, отчетах, элементах управления. Их же надо где-то создавать, редактировать.
Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
economist
Форумчанин
***
Offline Offline

Сообщений: 1 718


« Ответ #3: 17 Июнь 2022, 09:47 »

Еще про полезность SQL-запросов:

1) Во многих СУБД движках таблицы по запросам вида
Код:
SELECT * FROM РЕЕСТР
возвращают "таблица.поле" поля, с точкой, что очень некрасиво. Выход: пишем Запрос с алиасами:
Код:
SELECT 10 тест, N N, Дата Дата, ЦФО ЦФО, Файл Файл, Лимит Лимит, Сумма Сумма FROM РЕЕСТР
- и все сразу красиво. Кстати, такой приятный синтаксис, на русском, с сочетанием имен и номеров столбцов, без кавычек/скобочек поддерживает самая быстрая и самая распространенная в мире БД SQLite. В LibreOffice она работает через ODBC и JDBC-драйвера. Поддерживает комфортную работу по сети 3-5 пользователей (как Microsoft Access примерно).

2) Запрос, лежащий в основе Именованного диапазона БД в Calc (Данные - Задать диапазон) и метод Basic doImport() - самый быстрый способ затянуть огромные данные в Calc. Данные грузятся без форматирования, а "вычисляемые" столбцы могут быть и с формулами, можно авто-добавить итоги итп. Быстрее этого способа под Calc нет, скорость не ниже чем новейший ADO в MSO.

3) Сложный запрос легко сделать, объединяя текст из нескольких простых (отлаженных заранее)

4) Запрос может что-то конвертировать с CAST(), вычислять даты/периоды, делать ветвление CASE THEN WHEN и тд. Т.е. у вас есть выбор - делать это в приложении (дольше, медленнее), или положиться на силу SQL, баз данных и мощь сервера. SQL-запрос почти невозможно написать "плохо", т.к. он само-оптимизируется при выполнении. А вот макрос сам так не делает.

5) Редактор запросов с подсветкой синтаксиса в LO - очень неплох даже по сранению с конкурентами. Главное не забывать про кнопку Выполнить SQL непосредственно, и ее аналог EscapeProcessing на Basic. Для параметрических запросов кнопку приходится отжимать, при этом что-то перестает работать. Так что не каждый запрос может сразу дать нужное, его результат нередко приходится допиливать макросами.

6) Обновление именованного запроса - единственный способ обхода бага с doImport https://lists.freedesktop.org/archives/libreoffice/2019-March/082286.html

Есть у Запросов в Base и недостаток: их список - одноуровневый, сложно ориентироваться. Когда запросов больше тысячи он еще и тормозит. Приходится вводить запросы-пустышки как "разделители" и даже импортировать запросы частями (макросом) из текстового файла.  
« Последнее редактирование: 17 Июнь 2022, 10:04 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Ириминаге
Всем бобра!
Форумчанин
***
Offline Offline

Сообщений: 63


« Ответ #4: 17 Июнь 2022, 11:47 »

Экономист, как всегда подробно и профессионально! Спасибо!

eeigor, а как обращаться по имени к запросу?
Записан

Он верил в Мир и Здравый Смысл,
В себя, в людей, в любовь, в науку!
Но кто-то Кафку положил,
В его протянутую руку...
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #5: 17 Июнь 2022, 11:57 »


@economist: Ваша ссылка ведёт на email, который начинается с того, что Markus просит не обращать внимания на офтопик, цитируемый ниже; и сам офтопик голословно утверждает о наличии какого-то бага без ссылки на багрепорт:

Цитата: sos
Код:
'**** we make first a QUERY because a simple  SQLstring in the
ImportDescritor only works with  OO-SQL en not with a native SQL  (this is
a bug)

Вы, впрочем, тоже не ссылаетесь на багрепорт ... но нет багрепорта - нет бага (и на самом деле возможно, что и sos, и Вы просто не знаете, какое свойство правильно использовать с нативным SQL).
Записан

С уважением,
Михаил Каганский
sokol92
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 976


WWW
« Ответ #6: 17 Июнь 2022, 17:35 »

Продолжу тему этого "бага".

При работе с методом DoImport с базой PostgreSQL встречались случаи, когда корректный с точки зрения базы данных SQL-запрос, указанный непосредственно в свойстве SourceObject, "бракуется" LibreOffice c сообщением "Syntax error in SQL statement" (независимо от значения свойства IsNative). Например,
  
Код:
Select * from test2.f_ex$oksm
По-видимому, не нравится символ "$". А такой запрос выполняется:
  
Код:
Select * from test2."f_ex$oksm"

Сейчас (по прочтению "бага") попробовал сохранить первый запрос в Queries, установив опцию "Run SQL command directly". Команда Run Query не выполняется (выдается та же ошибка), но сохранению запроса это не мешает.

Теперь, если в DoImport сослаться на сохраненный запрос, то данные успешно читаются.

Напишу баг, когда придумаю, как это внятно и кратко изложить.  Улыбка
« Последнее редактирование: 17 Июнь 2022, 17:46 от sokol92 » Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!