SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Вопрос на засыпку
Вопрос на засыпку [сообщение #262] Wed, 03 August 2022 08:28 Переход к следующему сообщению
DarkMaster в настоящее время не в онлайне  DarkMaster
Сообщений: 33
Зарегистрирован: August 2022
Member
Вводная - есть старая система на FB. Есть пользовательские "сетки", хранящиеся в таблице GRIDS (например) в виде: { GRIDNAME, FIELDNAME, FIELDCAPTION, VISIBLE }.
Т.е. "сетка/грид" для запроса :

SELECT ID,NAME FROM FRIENDS

в таблице GRIDS будет иметь вид:

GRIDNAME FIELDNAME FIELDCAPTION VISIBLE
FRIENDS_GRID ID Идентификатор 0
FRIENDS_GRID NAME Имя друга 1

В дополнение есть таблица "отчетов/запросов", которая хранит инфу о SQL запросах и именах сеток. По факту - берем из БД запрос, настраиваем сетку по имени, показываем пользователю - все ясно и прозрачно. В запросах SELECT из таблиц, процедур, execute block.

Теперь о грустном - надо ввести в GRIDS дополнительное поле типа FIELDFORMAT (например) для использования другой софтиной. Достаточно будет определить, какие поля в запросе DATE,TIME,TIMESTAMP. Вот как бы это вывернуть без написания специальной тузлы, которая выполнит/препарирует запрос, определит, что за поля он вернул и обновит соответствующую ему сетку в GRIDS.

Т.е. на запрос:

select t.id, t.mydate, n.name
from t
join n on (n.did=t.id)

Вернулось бы что-то в виде:

id INTEGER
mydate DATE
name VARCHAR

Можно ли такое вывернуть на SQL вообще? Подозреваю, что нет, но так - на всякий случай спрашиваю.
Re: Вопрос на засыпку [сообщение #264 является ответом на сообщение #262] Wed, 03 August 2022 10:01 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 286
Зарегистрирован: June 2022
Senior Member
В Firebird нет встроенных средств для этого, только препарирование и получение столбцов на клиенте.
Хотя если сильно надо, то за день можно налабать UDR процедуру на вход которой подаётся текст запроса, а на выходе имена столбцов с их типами, можно ещё и типы параметров вернуть (без имён).
Re: Вопрос на засыпку [сообщение #265 является ответом на сообщение #264] Wed, 03 August 2022 12:06 Переход к предыдущему сообщению
DarkMaster в настоящее время не в онлайне  DarkMaster
Сообщений: 33
Зарегистрирован: August 2022
Member
Не стал извращаться и написал тул. В принципе мысли сначала потекли в сторону IBE с его скриптами, но понял, что овчинка выделки не стоит...
Предыдущая тема: ODBC для FB3 в комбинации с Excel
Следующая тема: Установить Firebird 4 под Ubuntu?
Переход к форуму:
  


Текущее время: Thu Mar 28 11:50:10 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00805 секунд