Начало » Использование СУБД » Firebird, HQbird, InterBase » Вопрос на засыпку
Вопрос на засыпку [сообщение #262] |
Wed, 03 August 2022 08:28 |
DarkMaster
Сообщений: 35 Зарегистрирован: 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: Вопрос на засыпку [сообщение #265 является ответом на сообщение #264] |
Wed, 03 August 2022 12:06 |
DarkMaster
Сообщений: 35 Зарегистрирован: August 2022
|
Member |
|
|
Не стал извращаться и написал тул. В принципе мысли сначала потекли в сторону IBE с его скриптами, но понял, что овчинка выделки не стоит...
|
|
|
Переход к форуму:
Текущее время: Fri Nov 22 01:15:59 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00927 секунд
|