|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Нужна идея - SQL Browser |
|
C/C++ - Нужна идея - SQL Browser
|
![]() Ветеран Сообщения: 1180 |
начится так. Вот минипрограмка, которая отображает запросы SQL в виде дерева. Для запуска:
1. Соберите (Borland C++ Builder 6.0) 2. Тыкните на tree_table.udl и введите настройки соединения 3. Отредактируйте файлик tree_table.sql с запросами. Файл состоит из 2-х списков, ограниченных тэгами <root>..</root>. Внутри тэг <key>..</key> задаёт название, <sql>..</sql> запрос. Текст мезду тегами воспринимается "буквально", т.е. без пропуска пробелов и переводов строк. Первый список задаёт корни дерева, второй - все остальные ветки. Запрос должен возвращать поля: 1. Ключ следующей записи <key> во втором списке <root>, либо пустая строчка, если не раскрывать 2. ИД записи (используется declare @parent_id integer; set @parent_id=ИД; перед запросом, взятым по ключу <key>) 3. Картинка, соотвествующая ветке (игнорируется) 4. Текст, соответсвующий ветке В тексте запроса во втором списке <root> можно применять переменную @parent_id. Перед <key> и <sql> можно оставлять комментарий <root> <key>Тип поиска 1</key> <sql> select 'table2.table1_id' as next, id as id, '1.bmp' as image, text as text from table1 order by text </sql> <key>Тип поиска 2</key> <sql> select 'table2.table3_id' as next, id as id, '1.bmp' as image, text as text from table3 order by text </sql> </root> <root> <key>table2.table1_id</key> комментарий <sql> select 'table4.table2_id' as next, id as id, '2.bmp' as image, text as text from table2 where table1_id = @parent_id order by text </sql> <key>table3.table1_id</key> <sql> select '' as next, id as id, '3.bmp' as image, text as text from table3 where table1_id = @parent_id order by roomOrd </sql> <key>table4.table2_id</key> <sql> select '' as next, id as id, '4.bmp' as image, text as text from table4 where table2_id = @parent_id order by text </sql> </root> 1. выбрать "должность", "группа" или "рабочие места" (как в верхнем выпадающем списке в программе выше) 2. допустим выбрали должность. И выбрали из списка какую 3. выбрать "группа" или "рабочие места" 4. допустим выбрали "группа" и из списка групп с такой должностью выбрали одну группу. 5. осталось "рабочие места" - выбрали рабочее место 6. получили список пользователей Как соединять запросы SQL? Нужна идея, желательно хитрая |
|
Отправлено: 13:58, 28-11-2008 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать пока остановился на условной трансляции SQL с тасканием за собой параметров трансляции. Типа того:
В качестве меток транслятора пока подобие тегов, хотя можно было директивы сишного препроцессора. Или может урезанное подобие php лучше сделать, или ещё как? Критерий: чтобы читалось легко. |
Отправлено: 12:10, 01-12-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать остановил выбор всё же на тэгах типа html,xml. Причёсываю "язык". Возник такой вопрос: сколько раз sql-сервер сделает проверку @parentId is null и @like is null в следующием коде, который вываливает табличку из 1000 строчек:
declare @parentId integer; --set @parentId=397; declare @like varchar(10); select top 11 'waresGroup.parentId' as next, str(id,8,0) as id, '1.bmp' as image, name from waresGroup where ((@parentId is null and parentId is null) or parentId=@parentId) and enabled=1 and (@like is null or name like @like) union select top 11 '' as next, 'W' + str(id,8,0), '2.bmp' as image, name from wares where ((@parentId is null and waresGroupId is null) or waresGroupId=@parentId) and enabled=1 and (@like is null or name like @like) |
Отправлено: 12:14, 23-01-2009 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Государственная идея | ALLY | Флейм | 23 | 03-01-2009 04:00 | |
новая идея Mozilla Desktop Environment | must die | Новости и флейм из мира *nix | 3 | 27-03-2007 22:02 | |
Есть идея устроить ethernet в масшатабах райнов. | Oikio | Хочу все знать | 4 | 19-02-2007 23:59 |
|