powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хотелка: пользовательские стэйтменты
2 сообщений из 2, страница 1 из 1
Хотелка: пользовательские стэйтменты
    #38593522
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл в том, чтобы можно было добавлять свои конструкции в SQL, и использовать их.
Например в SQL можно было бы написать такое:
Код: sql
1.
start logging T; -- создать табличку H$T и логирующие триггеры для T 


или такое:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
-- создаст табличку Servers (Id PK, Name, Country, Valid)
create entity Servers (Name: string, Country: string, Valid: Boolean not null default True); 

-- создаст табличку Users (Id PK, Name, Server FK to Servers.Id)
create entity Users (Name: string, Server: foreign key to Servers); 

create entity Documents (Owner: foreign key to Users, Created: timestamp not null default current_timestamp, Valid: Boolean not null default True);

-- создаст табличку Orders + 1 уникальный FK на Documents + триггер на удаление, 
-- чтобы удалить и соответствующую запись из Documents
create entity Orders (Client: string, OrderDate: date not null, Sum: Money) inherited from Documents; 

create entity Places (Name: string);
create entity Movements (FromPlace, ToPlace: foreign key to Places) inherited from Documents;


и на основе этой структуры:
Код: sql
1.
select Client, Owner.Name, Owner.Server.Name from Orders order by Owner.Server.Country; 


Код: sql
1.
update Orders O set O.Valid = False where (O.Created > current_timestamp) or (O.Owner.Server.Country = '');



Хочется перехватить стейтмент, распарсить, кинуть ошибку если он не Ok, и выполнить если он Ok.
И чтобы эти конструкции можно было использовать в хранимках и триггерах (включая for select) и в подзапросах :)

Короче хочется в перспективе иметь возможность немного расширять язык :) Чтобы можно было подложить на сервер свою dll с sql-расширениями, зарегистрировать их в БД и дальше работать как с обычным sql, используя уже существующие средства разработки.

Что-то мысли одна ширей другой :)
...
Рейтинг: 0 / 0
Хотелка: пользовательские стэйтменты
    #38593548
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDeeКороче хочется в перспективе иметь возможность немного расширять язык :)
Чтобы можно было подложить на сервер свою dll с sql-расширениями, зарегистрировать их в БД
и дальше работать как с обычным sql, используя уже существующие средства разработки.
А в чём проблема-то? Правишь parse.y, собираешь Engine12.dll, подкладываешь на сервер и
работаешь с новыми языковыми конструкциями хоть где.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Хотелка: пользовательские стэйтменты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]