Имеем следующее состояние вкладок редакторов на панели
Теперь, если внести изменения в редактор, то ширина вкладки станет чуть больше из-за появления "звездочки". Как следствие, на вкладке исчезает "крестик" для ее закрытия.
Найдено 60 результатов
- Ср 12 дек 2012 07:08
- Форум: dbForge for Oracle
- Тема: исчезает кнопка закрытия вкладки редактора
- Ответы: 2
- Просмотры: 5430
- Ср 12 дек 2012 06:44
- Форум: dbForge for Oracle
- Тема: переход к определению
- Ответы: 3
- Просмотры: 6017
Re: переход к определению
Вопрос с новым объектом снимается. Я искал в "Сервис|Настройка...", вкладка "Команды". В категории "Стандартные" есть, конечно, команда "Объект базы данных...", но слово "новый" там напрочь отсутствует, посему я без всякой задней мысли его пропустил.
Пример №1
Попытка перехода к определению в первом вызове MY_FUNC не увенчалась успехом. Но, как это ни парадоксально, переход к определению во втором вызове MY_FUNC происходит.
Пример №2
В части кода, помеченном комментарием "блок 1", все переходы к определению вьюхи MY_VIEW осуществляются. Но если слегка видоизменить запрос под курсором (см. код под комментом "блок 2"), то уже НИ В ОДНОМ из четырех использований вьюхи MY_VIEW переход не выполняется. Хотя "контекст" остался тем же: SELECT ... FROM ..., LEFT JOIN ... ON ...
И это просто пара несложных примеров, когда ваш якобы "нужный и полезный" анализ "контекста" вызова "спотыкается" на ровном месте. И именно поэтому я призываю разработчиков dbForge избавиться от идеи "параноидального парсера" и просто пытаться найти среди объектов базы слово под курсором, как это сделали разработчики того же IBExpert, TOAD и прочих сред, избавив и пользователей от лишнего геморроя, и в первую очередь себя от "изобретения велосипеда".
Я бы на Вашем месте так категорично не заявлял, что он "определяет". Надо быть скромнее: "пытается определить". Вот пара примеров его неудачных "попыток" (NB: примеры бессмысленны до абсурда и призваны просто продемонстрировать недоработки).dbForge Studio for Oracle из контекста определяет предполагаемый тип объектов и поиск производится только среди предполагаемых типов объекта.
Пример №1
Код: Выделить всё
begin
if 1 in (my_func('1'), my_func('2')) then
null;
end if;
end;
Пример №2
Код: Выделить всё
begin
-- блок 1
for v_cur in (
select
v.id,
v2.val as val_2,
(
select
v3.val
from
my_view v3
where
v3.id = v.id
) as val_3
from
my_view v
left join my_view v2 on v2.id = v.id
)
loop
null;
end loop;
-- блок 2
for v_cur in (
with my_cte as (
select
v.id,
v2.val as val_2,
(
select
v3.val
from
my_view v3
where
v3.id = v.id
) as val_3
from
my_view v
left join my_view v2 on v2.id = v.id
)
select
mc.val_2,
mc.val_3,
v4.val as val_4
from
my_cte mc
left join my_view v4 on v4.id = mc.id
)
loop
null;
end loop;
end;
И это просто пара несложных примеров, когда ваш якобы "нужный и полезный" анализ "контекста" вызова "спотыкается" на ровном месте. И именно поэтому я призываю разработчиков dbForge избавиться от идеи "параноидального парсера" и просто пытаться найти среди объектов базы слово под курсором, как это сделали разработчики того же IBExpert, TOAD и прочих сред, избавив и пользователей от лишнего геморроя, и в первую очередь себя от "изобретения велосипеда".
- Вт 11 дек 2012 05:43
- Форум: dbForge for Oracle
- Тема: переход к определению
- Ответы: 3
- Просмотры: 6017
переход к определению
Допустим, имеем некую VIEW с именем MY_VIEW. Если в SQL-редакторе написать просто
и нажать "Перейти к определению" (F12), то получим сообщение
поставить курсор на имя MY_VIEW и нажать F12, то чудесным образом откроется редактор вьюхи.
Внимание, вопрос! (с) Почему нельзя просто взять "слово" под курсором и поискать его среди имен объектов, вместо того, чтобы маниакально "по контексту" пытаться понять, что под курсором сейчас "находится" именно какой-то объект БД? Насколько я понимаю, такой вот анализ "контекста" зачастую является источником крайне раздражающей ошибки о "невозможности перейти к определению".
И еще один "наболевший" момент. Убедительная просьба реализовать возможность "выноса" на toolbar кнопок создания новых объектов схемы: пакет, функция, вьюха, таблица и т.д. Дабы не "рыться" постоянно в дереве объектов в поисках узла нужного типа для создания нового объекта этого типа.
Код: Выделить всё
my_view
Но если написатьНевозможно перейти к определению. Не найден источник навигации.
Код: Выделить всё
select * from my_view
Внимание, вопрос! (с) Почему нельзя просто взять "слово" под курсором и поискать его среди имен объектов, вместо того, чтобы маниакально "по контексту" пытаться понять, что под курсором сейчас "находится" именно какой-то объект БД? Насколько я понимаю, такой вот анализ "контекста" зачастую является источником крайне раздражающей ошибки о "невозможности перейти к определению".
И еще один "наболевший" момент. Убедительная просьба реализовать возможность "выноса" на toolbar кнопок создания новых объектов схемы: пакет, функция, вьюха, таблица и т.д. Дабы не "рыться" постоянно в дереве объектов в поисках узла нужного типа для создания нового объекта этого типа.
- Чт 06 дек 2012 05:52
- Форум: dbForge for Oracle
- Тема: кривой отступ по Tab
- Ответы: 2
- Просмотры: 5155
кривой отступ по Tab
Имеем некоторый текст в редакторе, курсор стоит в начале строки (первый скрин, слева). Нажимаем Shift+Up, дабы выделить строку (первый скрин, справа).
Теперь нажимаем Tab (второй скрин, слева). Видим, что выделение странным образом "поползло" еще по одной строке. Ну и второе нажатие Tab приводит к тому, что и вторая строка (со скобкой) тоже начинает "сдвигаться" (второй скрин, справа).
По-моему, такое поведение ненормально. А по-вашему?
Версия dbForge Studio for Oracle 3.1.243.1
Теперь нажимаем Tab (второй скрин, слева). Видим, что выделение странным образом "поползло" еще по одной строке. Ну и второе нажатие Tab приводит к тому, что и вторая строка (со скобкой) тоже начинает "сдвигаться" (второй скрин, справа).
По-моему, такое поведение ненормально. А по-вашему?
Версия dbForge Studio for Oracle 3.1.243.1
- Вт 06 ноя 2012 06:58
- Форум: dbForge for Oracle
- Тема: "тормоза" приложения
- Ответы: 12
- Просмотры: 16850
"тормоза" приложения
Частенько, dbForge конкретно "тормозит" при выполнении даже самых элементарных запросов из SQLEditor'а. При этом очевидно, что тормоза вызваны не самим запросом, а именно средой, которая чем-то "занимается" перед его непосредственным выполнением. Аналогичная печальная картина наблюдается, например, и просто при открытии коннекта. Первое, что бросилось в глаза при попытке "подсмотреть", а что же все-таки там происходит в момент "подвисаний",- это вот этот прелюбопытнейший запросец:
Он выполняется средой достаточно часто и время его выполнения составляет 5 (!!!) секунд. Ну и план выполнения оставляет желать лучшего.
Убедительная просьба, хотя бы просто добавить условие
в выборку из ALL_OBJECTS.
Версия сервера: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
Версия приложения: dbForge Studio for Oracle 3.1.219.1
Код: Выделить всё
select
u.username
from
all_users u
where
exists(
select
1
from
all_objects o
where
o.owner = u.username)
union all
select
'PUBLIC'
from
dual
order by
1
Убедительная просьба, хотя бы просто добавить условие
Код: Выделить всё
and rownum = 1
Версия сервера: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
Версия приложения: dbForge Studio for Oracle 3.1.219.1
- Ср 31 окт 2012 07:49
- Форум: dbForge for Oracle
- Тема: кнопка приложения на TaskBar
- Ответы: 3
- Просмотры: 5720
кнопка приложения на TaskBar
Запускаю Ваше приложение. Пока оно грузится и на экране красуется splash, переключаюсь в окно другого приложения. В итоге, dbForge, конечно, запускается, но кнопки на панели задач не появляется. И если окно "другого" приложения развернуто на весь экран, то вообще не понятно, запустился ли dbForge. Ладно хоть на него в этот момент странным образом не "действует" сочетание Win+M, и после минимизации всех прочих "нормальных" окон, dbForge "обнаруживается" на экране, и после получения его окном фокуса, на панели задач гордо "выплывает" заветная кнопочка.
И еще пара "наболевших" замечаний:
1) Допустим, открыто тело пакета P1, в нем имеется вызов процедуры из пакета P2. Нажимаем F12 (перейти к определению). Открывается спецификация пакета P2. Не знаю как других, но лично меня в случае нажатия F12 всегда намного больше интересует РЕАЛИЗАЦИЯ процедуры, чем ее спецификация. В каком пакете она находится, как называется, что принимает на вход и что возвращает (хотя бы приблизительно) обычно уже понятно по контексту вызова. К тому же, вся эта информация все равно "дублируется" в теле пакета и ее там с таким же успехом можно "посмотреть". И уж если "переходить" именно в спецификацию - это принципиальный вопрос, то сделайте хотя бы возможность перехода из спецификации на реализацию.
2) Если спецификация пакета P2 уже открыта, то при нажатии F12 в точке вызова процедуры в пакете P1 выдается сообщение:
И еще пара "наболевших" замечаний:
1) Допустим, открыто тело пакета P1, в нем имеется вызов процедуры из пакета P2. Нажимаем F12 (перейти к определению). Открывается спецификация пакета P2. Не знаю как других, но лично меня в случае нажатия F12 всегда намного больше интересует РЕАЛИЗАЦИЯ процедуры, чем ее спецификация. В каком пакете она находится, как называется, что принимает на вход и что возвращает (хотя бы приблизительно) обычно уже понятно по контексту вызова. К тому же, вся эта информация все равно "дублируется" в теле пакета и ее там с таким же успехом можно "посмотреть". И уж если "переходить" именно в спецификацию - это принципиальный вопрос, то сделайте хотя бы возможность перехода из спецификации на реализацию.
2) Если спецификация пакета P2 уже открыта, то при нажатии F12 в точке вызова процедуры в пакете P1 выдается сообщение:
Зачем?! Чтобы что-то открыть надо сначала это что-то закрыть? При этом никаких несохраненных изменений в спецификации нет. Да еще и при ответе "Нет" выдается ошибкаДокумент "Package:XXX.P2(BASE)" уже открыт. Вы хотите закрыть его?
З.Ы. версия dbForge Studio for Oracle 3.1.219.1Невозможно перейти к определению
- Ср 25 июл 2012 13:59
- Форум: dbForge for Oracle
- Тема: при редактировании VIEW не изменяется алиас
- Ответы: 7
- Просмотры: 9291
Re: при редактировании VIEW не изменяется алиас
Позвольте поинтересоваться, что призвана обозначать фраза "при условии совпадении количества колонок"? А с каких это пор количество полей в запросе VIEW и количество "выходных" алиасов для них может отличаться? Вроде бы, ORA-01730 еще никто не отменял.Alexander писал(а):А механизм сохранения алиасов, при условии совпадении количества колонок, применим только для невалидных представлений.
И зачем вобще к инвалидным VIEW (и только к ним!) "применять" какие-то "механизмы"? Этот "механизм" специально для такой ситуации был разработан?
Системный архитектор: "Представляете, если кто-то отредактирует инвалидную вьюху и, не дай Бог, сделает ее валидной и сохранит, изменив алиасы. Это катастрофа! Надо обязательно предусмотреть механизм защиты от изменения алиасов инвалидной вьюхи".
Так это было?
Я сохраняю нормальную валидную вьюху, какая разница, в каком состоянии она была перед этим?
- Ср 25 июл 2012 12:15
- Форум: dbForge for Oracle
- Тема: при редактировании VIEW не изменяется алиас
- Ответы: 7
- Просмотры: 9291
Re: при редактировании VIEW не изменяется алиас
Представление V_TEST_MAIN после изменения в редакторе имени поля выборки является валидным и нормально сохраняется. Чем это сохранение принципиально отличается от сохранения любой другой отредактированной валидной вьюшки, где алиасы изменяются автоматом, согласно именам полей выборки?Alexander писал(а):Таково поведение dbForge Studio for Oracle для невалидных представлений.
Опять же, если у валидной вьюшки прописаны алиасы полей, отличные от имен в выборке, и я изменю выборку, то dbFogre молча "утеряет" перекрывающие алиасы вьюшки, приведя их в соответствие с выборкой. Почему в этом случае разработчики dbForge сочли возможным изменить алиасы, а в случае с редактированием изначально инвалидной вьюшки - нет?Alexander писал(а):Есть вторая сторона медали, если были прописаны алиасы отличные от имени колонок, а нужно изменить имя колонки, то алиасы не будут утеряны.
Пример. Создаем новую вьюшу с ипользованием редактора, на вкладке "Столбцы" для поля выборки F01 задаем алиас A01, сохраняем. Получаем такой текст:
Код: Выделить всё
CREATE OR REPLACE VIEW XXX.V_TEST_01 (
A01
)
AS
select
1 as f01
from
dual;
Код: Выделить всё
CREATE OR REPLACE VIEW XXX.V_TEST_01 (
N01
)
AS
select
1 as n01
from
dual;
- Пн 23 июл 2012 09:20
- Форум: dbForge for Oracle
- Тема: объект был изменен вне редактора
- Ответы: 3
- Просмотры: 6053
объект был изменен вне редактора
Создаем тестовый пакет:
Открываем спецификацию и тело пакета в редакторах. Идем в редактор ТЕЛА пакета, изменяем процедуру, добавив ей еще один входной параметр:
НЕ компилим, переключаемся в редактор спецификации пакета, жмякаем "Компилировать" (Ctrl+F7). Получаем следующие сообщения:
И еще один момент. Если теперь сначала компильнуть тело пакета (с двумя входными параметрами), а потом снова спецификацию (с одним параметром), то в окошке "Список ошибок" ошибка
Код: Выделить всё
create or replace package nag_test as
procedure my_proc(
param1 number);
end nag_test;
/
create or replace package body nag_test as
procedure my_proc(
param1 number)
is
begin
null;
end my_proc;
end nag_test;
Код: Выделить всё
procedure my_proc(
param1 number,
param2 number)
is
begin
null;
end my_proc;
СледомТело пакета 'XXX.NAG_TEST' было успешно скомпилировано.
СледомПакет 'XXX.NAG_TEST' был успешно скомпилирован.
Само собой, вне редактора я ничего не менял. Если ответить "Да", то изменения (добавление параметра) будут потеряны, если "Нет" - то тело пакета так и будет помечено "звездочкой" (изменено и не сохранено). При этом никаких ошибок и предупреждений в окошке "Список ошибок" не появляется и пакет остается валидным.Объект 'XXX.NAG_TEST (Тело)' был изменен вне редактора. Перезагрузить?
И еще один момент. Если теперь сначала компильнуть тело пакета (с двумя входными параметрами), а потом снова спецификацию (с одним параметром), то в окошке "Список ошибок" ошибка
будет отображена дважды: как ошибка и как предупреждение.PLS-00323: subprogram or cursor 'MY_PROC' is declared in a package specification and must be defined in the package body
- Пн 23 июл 2012 08:09
- Форум: dbForge for Oracle
- Тема: при редактировании VIEW не изменяется алиас
- Ответы: 7
- Просмотры: 9291
Re: при редактировании VIEW не изменяется алиас
Нет, речь шла не про каскадное переименование. А про "переименование" алиаса ТОЛЬКО в той вьюхе, которую в данный момент редактируем. В случае с V_TEST_BASE такое автоматичекское "переименование" имело место быть, а вот при редактировании V_TEST_MAIN алиас остался "старым", несмотря на переименование поля. Т.е. нет "одинаковости" поведения редактора VIEW при одних и тех же действиях разработчика.
- Пн 23 июл 2012 06:39
- Форум: dbForge for Oracle
- Тема: при редактировании VIEW не изменяется алиас
- Ответы: 7
- Просмотры: 9291
при редактировании VIEW не изменяется алиас
Создаем пару вьюшек:
Открываем обе вьюшки в редакторах. В первой VIEW в редакторе изменяем алиас поля в запросе на my_data, сохраняем (Ctrl+S). На вкладке "Текст" видим, что алиас вьюшки тоже автоматом изменился:
Теперь, очевидно, вторая VIEW стала инвалидной. Посему, аналогично меняем в редакторе имя поля в запросе на my_data и жмякаем "Сохранить". После этого на вкладке "Текст" видим, что алиас вьюшки остался прежним, несмотря на изменение имени поля в запросе:
Привыкнув к тому, что алиасы VIEW изменяются автоматичеки в соответствии с именами полей (как в первом случае), я не ожидал такого подвоха со стороны dbForge во втором, и не сразу втупил, почему у меня приложение грязно ругается про "недопустимый идентификатор" при обращении ко второй VIEW, хотя поля указаны (казалось бы) правильно.
Вопрос к разрабам: это так и задумано?
Код: Выделить всё
create or replace view v_test_base(
f01
)
as
select
1 as f01
from
dual;
create or replace view v_test_main(
f01
)
as
select
f01
from
v_test_base;
Код: Выделить всё
CREATE OR REPLACE VIEW V_TEST_BASE (
MY_DATA
)
AS
select
1 as my_data
from
dual;
Код: Выделить всё
CREATE OR REPLACE VIEW V_TEST_MAIN (
F01
)
AS
select
my_data
from
v_test_base;
Вопрос к разрабам: это так и задумано?
- Пн 02 июл 2012 06:41
- Форум: dbForge for Oracle
- Тема: public database link
- Ответы: 2
- Просмотры: 4838
public database link
Имеется public database link и следующие связанные с ним проблемы:
1) В дереве объектов вобще не отображаются существующие public database link
2) Выполняем в SQL-editor запрос вида
где v_nag - view в базе, на которую настроек db link.
При выключенном постраничном режиме если поставить фокус в сетку с данными и нажать Ctrl+End, то отобразится только 499 записей. Хотя на самом деле записей, возвращаемых запросом, гораздо больше. Надо отметить, что в режиме постраничного отображения данных всё нормально и видны все записи.
Кстати, после переключения обратно из постраничного режима сетка показывает уже 524 записи вместо 499, что всё равно не соответствует действительности.
Версия приложения: dbForge Studio for Oracle 3.1.206.1
Версия СУБД: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
1) В дереве объектов вобще не отображаются существующие public database link
2) Выполняем в SQL-editor запрос вида
Код: Выделить всё
select * from v_nag@test_link
При выключенном постраничном режиме если поставить фокус в сетку с данными и нажать Ctrl+End, то отобразится только 499 записей. Хотя на самом деле записей, возвращаемых запросом, гораздо больше. Надо отметить, что в режиме постраничного отображения данных всё нормально и видны все записи.
Кстати, после переключения обратно из постраничного режима сетка показывает уже 524 записи вместо 499, что всё равно не соответствует действительности.
Версия приложения: dbForge Studio for Oracle 3.1.206.1
Версия СУБД: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
- Пн 25 июн 2012 08:41
- Форум: dbForge for Oracle
- Тема: И снова про лже-удаление...
- Ответы: 5
- Просмотры: 6288
Re: И снова про лже-удаление...
А при чем тут, пардон, версия сервера? Это сама СУБД уведомляет приложение, что объект был удален? Мне, конечно, не жалко:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
Проверил в версии dbForge Studio for Oracle 3.1.206.1 - воспроизводится. Небольшие уточнения по воспроизведению: подключаемся к базе (проекту), разворачиваем узел "Таблицы" (чтобы они все "прогрузились" в TreeView), открываем SQL-Editor и выполняем скрипты (см. выше) по созданию таблицы и триггера. Таблица должна именно создаваться (CREATE), т.е. ее не должно быть до этого в "прогруженном" дереве объектов. Дальше всё как описано выше.
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
Проверил в версии dbForge Studio for Oracle 3.1.206.1 - воспроизводится. Небольшие уточнения по воспроизведению: подключаемся к базе (проекту), разворачиваем узел "Таблицы" (чтобы они все "прогрузились" в TreeView), открываем SQL-Editor и выполняем скрипты (см. выше) по созданию таблицы и триггера. Таблица должна именно создаваться (CREATE), т.е. ее не должно быть до этого в "прогруженном" дереве объектов. Дальше всё как описано выше.
- Ср 06 июн 2012 07:39
- Форум: dbForge for Oracle
- Тема: Ошибочные подсказки по параметрам перегруженных процедур
- Ответы: 2
- Просмотры: 4931
Ошибочные подсказки по параметрам перегруженных процедур
Создаем пакет с парой перегруженных процедур
Обновляем список объектов, пишем анонимный блок, в котором вызываем подсказу по параметрам процедуры и видим нижеследующее.
Первый вариант процедуры
Второй вариант процедуры
Версия dbForge Studio for Oracle 3.1.198.1
Код: Выделить всё
create or replace package xxx.nag_test as
procedure test_proc(
a_id number,
a_value date);
procedure test_proc(
a_id number,
a_value varchar2);
end nag_test;
/
create or replace package body xxx.nag_test as
procedure test_proc(
a_id number,
a_value date)
is
begin
null;
end;
procedure test_proc(
a_id number,
a_value varchar2)
is
begin
null;
end;
end nag_test;
/
Первый вариант процедуры
Второй вариант процедуры
Версия dbForge Studio for Oracle 3.1.198.1
- Ср 06 июн 2012 07:04
- Форум: dbForge for Oracle
- Тема: Недоработка: не обновляется кеш автоподстановки
- Ответы: 5
- Просмотры: 6966
Re: Недоработка: не обновляется кеш автоподстановки
У меня он есть на панели. Если нет - открой меню tooolbar "Добавить или удалить кнопки"|"Настройка..." (или правой кнопкой на toolbar и "Настройка..."), вкладка "Команды", категория "Текст", команда "Обновить список объектов". Перетащи ее мышой на понравившийся toolbar.
Насчет shortcut - поддерживаю.
Насчет shortcut - поддерживаю.