Форум программистов, компьютерный форум, киберфорум
amd48
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

MS Access. Альтернативный SQL-редактор

Запись от amd48 размещена 30.06.2020 в 11:37
Показов 2184 Комментарии 1
Метки ms access

Здесь SQL-редактор я размышлял вслух и спрашивал всякие советы об этом своём творении. Решил сухой остаток перенести в блог. Он-то уже никуда не уплывёт.

Кратко, что это такое и зачем.
В MSA встроенный редактор запросов имеет много ограничений в использовании и интерфейс, не превосходящий возможностей notepad.exe. А после работы в серьёзных средах (PL/SQL Developer для Oracle или MS SQL Server Management Studio) MSA просто удручает. И вот, под этим впечатлением сделана попытка воспроизвести нечто подобное. В редакторе используется RTF-форматирование, которое стало доступно в MSA 2010. В 2003 и более ранних версиях он работать не будет. В приведённой теме можно найти его ещё не-RTF-версию.
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 647
Размер:	24.3 Кб
ID:	6320
Редактор может быть полезен тем, кто предпочитает писать запросы руками, а не мышкой в конструкторе. Особенно это касается вложенных запросов, с использованием UNION и прочих, где конструктор не годится.
Редактор состоит из MSA-формы fSQLEditor и модуля mSQLEditor. Их можно импортировать в любую вашу базу и работать с её таблицами и запросами. В приложенной базе есть форма frmExportForm, позволяющая одним кликом экспортировать редактор в вашу БД. Редактор будет доступен даже mde-базах, где стандартная среда разработки отключена.
Возможности:
- зарезервированные SQL-слова переводятся к верхнему регистру и окрашиваются в синий цвет
- зарезервированные VBA-слова переводятся к Регистру и окрашиваются в бирюзовый цвет. И те и другие слова перечислены в массивах sSQL и sVBA в процедуре ColorRTF модуля mSQLEditor. Я перечислил там всё, что смог вспомнить. Можете дополнить своими при желании
- текстовые строки внутри кавычек и апострофов, а так же числа окрашиваются в красный цвет
- строки, начинающиеся на "--" считаются комментариями и окрашиваются в зелёный цвет. По задумке эти строки перед выполнением отбрасываются. Не всегда срабатывает
- исполнять можно весь текст запроса целиком (курсор ничего не выделяет) или только выделенный фрагмент. Клавишами Shift+F7.
- подстановка имён таблиц и запросов текущей БД. Вызывается кликом ПКМ:
Нажмите на изображение для увеличения
Название: Безымянный1.png
Просмотров: 604
Размер:	24.6 Кб
ID:	6321
- подстановка имён полей после точки. Вызывается кликом ПКМ:
Нажмите на изображение для увеличения
Название: Безымянный2.png
Просмотров: 660
Размер:	26.2 Кб
ID:	6322

После выполнения запроса:
- в нижней части формы выводится таблица с результатом запроса, если это SELECT.
- на вкладке "интерпретатор" выводится отформатированный самим MSA запрос, если он синтаксически корректен. Это текст запроса "qTemp", который создаётся каждый раз при выполнении запроса из редактора

Навигатор по сохранённым запросам БД (кнопка "запросы БД" на форме):
Нажмите на изображение для увеличения
Название: Безымянный3.png
Просмотров: 705
Размер:	19.1 Кб
ID:	6323
- Тип запроса отмечается соответствующей буквой:
s - select
t - TRANSFORM
d - delete
u - update
i - insert
c - create
ↀ - union
- в навигаторе можно сохранить интерпретированный запрос, добавив к нему текстовое описание, которое задаётся через свойства запроса.
- можно открыть встроенный редактор запросов, если он доступен
- любой текст, набранный в редакторе, можно сохранить на диск в текстовый файл с расширением sql (см. кнопки слева вверху формы). А потом открыть в редакторе. При этом файл может содержать несколько запросов и комментарии. Выполнять его содержимое вы, всё равно, будете только выделенными фрагментами


Обновления
20.07.2020
Попытка сделать из редактора надстройку не удалась. Не видит она чужие источники данных (т.е. текущей БД).
Из другого аналогичного редактора позаимствовал обработку ошибок. Теперь ошибки синтаксиса и прочие при попытке исполнения SQL-кода выводятся на вкладку интерпретатора
Вложения
Тип файла: zip sql_editorRTF.zip (294.7 Кб, 359 просмотров)
Метки ms access
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Доброй ночи. Какая хорошая идея и ее реализация. Браво! Но вот вопрос, тормозит при вводе кода жутко. Так и должно быть?
    Запись от Varyag13 размещена 21.02.2021 в 21:33 Varyag13 вне форума
 
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru