Обсуждение возникших проблем, предложений и ошибок dbForge for SQL Server
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Чт 28 ноя 2013 11:17
Здравствуйте.
Не нашел в настройках, есть ли возможность не применять форматирование для запросов написанных в одну строку.
Не удобно видеть:
Код: Выделить всё
IF EXISTS (SELECT *
FROM
sys.objects
WHERE
object_id = object_id(N'dbo.procedure1')
AND type IN (N'P', N'PC'))
DROP PROCEDURE dbo.procedure1;
Лучше когда:
Код: Выделить всё
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = object_id(N'dbo.procedure1') AND type IN (N'P', N'PC'))
DROP PROCEDURE dbo.procedure1;
Или такие, тоже не удобно:
-
Alexander
Сообщение
Alexander » Чт 28 ноя 2013 12:56
Вы можете выполнить следующее:
1. Выберите 'Сервис -> Параметры' из основного меню.
2. В открывшемся окне 'Параметры' откройте раздел 'Текстовый редактор -> Форматирование -> Общие'.
3. Отключите опции 'Автоматически форматировать при вставке' и 'Автоматически форматировать при вводе разделителя'.
4. Нажмите 'OK'.
Возможность полностью отключить автоматическое форматирование при наборе текста появится в следующей версии продукта.
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Чт 28 ноя 2013 13:29
Я имел в виду отключение форматирования только для запросов в одну строку и в любой момент, а не только при вводе. В Visual Studio есть подобная функциональность и очень удобно.
Мне очень нравится кнопка отформатировать весь документ и большая часть давно написанного кода становится более читаемой, за исключением описанных моментов.
Было бы здорово иметь галочку типа, не разбивать на строки для запросов менее правой границы.
-
Alexander
Сообщение
Alexander » Чт 28 ноя 2013 15:04
Вы можете выполнить следующее:
1. Выберите 'Сервис -> Параметры' из основного меню.
2. В открывшемся окне 'Параметры' откройте раздел 'Текстовый редактор -> Форматирование -> Общие'.
3. Задайте значение в поле 'Правая граница' (по умолчанию - 80).
4. Перейдите в раздел 'Текстовый редактор -> Форматирование -> Перенос строк'.
5. Выберите опцию 'Переносить текст, когда он превышает размер границы справа'.
6. Нажмите 'OK'.
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Пт 29 ноя 2013 08:47
Я это пробовал, это другое. Он переносит текст который по другим правилам должен остаться в одной строке, а я имею в виду галочку которая бы игнорировала все остальные правила, если запрос поместился с одну строку.
Я не хочу отключать никакие существующие правила для всех запросов.
Что бы запросы типа:
Код: Выделить всё
IF EXISTS (SELECT * FROM client WHERE clid = @clid AND unload = 1)
Не превращались в:
Код: Выделить всё
IF EXISTS (SELECT *
FROM
client
WHERE
clid = @clid
AND unload = 1)
Слишком в таком случае увеличивается скроллинг одной процедуры, а остальные запросы, хорошо что превращаются. Я думаю такая функция очень полезна.
-
Alexander
Сообщение
Alexander » Пт 29 ноя 2013 10:28
В Visual Studio есть подобная функциональность и очень удобно.
Не могли бы Вы сообщить, как называется данная опция в Visual Studio?
Также, хотим сообщить Вам, что в новой версии dbForge Studio for SQL Server функциональность 'Форматирование' будет полностью переделана и будет иметь вид аналогичной функциональности другого нашего продукта dbForge SQL Complete
http://www.devart.com/dbforge/sql/sqlco ... nload.html, а также нашего онлайн сервиса
http://www.sql-format.com/
Также, мы могли бы реализовать опцию вида 'Leave subquery on single line', которая будет оставлять подзапрос на той же строке, что и основной запрос, если же конечно данный подзапрос не был перенесён пользователем на следующую строку.
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Пт 29 ноя 2013 10:52
Приложил скрин с настройками VS, в данном случае VS2008.
-
Вложения
-
- Снимок.PNG (29.15 КБ) 15885 просмотров
-
helgi
- Devart Team
- Сообщения: 10
- Зарегистрирован: Вт 21 окт 2008 08:48
- Откуда: Devart
-
Контактная информация:
Сообщение
helgi » Пт 29 ноя 2013 12:08
Ваша просьба касается только подзапросов или вообще любых SQL выражений? Устроит ли Вас вариант типа "Оставлять короткие подзапросы на одной строке", которая будет запрещать форматтеру вставлять переносы строк в подзапросы, которые изначально расположены на одной строке и не вылазят за указанную правую границу?
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Пт 29 ноя 2013 13:17
Да, я писал только про подзапросы и желательно обрамляющие их скобки тоже.
И если возможно такая же логика и в следующем случае:
Код: Выделить всё
SELECT
*
FROM Table1
WHERE
tID IN (SELECT tID FROM Table2 WHERE flag = 1)
Это пример, но суть я думаю понятна.
-
Alexander
Сообщение
Alexander » Пт 29 ноя 2013 14:04
Спасибо за ответ.
Мы добавили данное предложение в план разработки будущих версий продукта.
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Пн 02 дек 2013 09:42
И еще одно замечание к форматированию. Если конечно актуально будет в связи с переходом на другой движок.
При создании процедуры форматирую полностью текс и получаю:
Код: Выделить всё
CREATE PROCEDURE test
AS
BEGIN
SELECT *
FROM
sys.objects o
END
Потом ставлю ; и получается так:
Код: Выделить всё
CREATE PROCEDURE test
AS
BEGIN
SELECT *
FROM
sys.objects o;
END
Что не очень удобно.
-
Alexander
Сообщение
Alexander » Пн 02 дек 2013 14:47
Мы исправим данную проблему в новой версии продукта.
-
deas
- Сообщения: 161
- Зарегистрирован: Чт 21 ноя 2013 10:54
Сообщение
deas » Вт 03 дек 2013 10:00
И еще одно замечание.
После нажатия "Ctrl+K,D", а затем сохранения (Ctrl+S) то курсор переходит на первую строку процедуры. Причем не важно менял ли что то еще или нет.
Если честно, то очень сильно мешает процессу.
И в дополнение в VS есть такая комбинация как Ctrl+'-', которая показывает прошлое место где был курсор, очень удобная функциональность при разработке.
-
Alexander
Сообщение
Alexander » Ср 04 дек 2013 15:04
После нажатия "Ctrl+K,D", а затем сохранения (Ctrl+S) то курсор переходит на первую строку процедуры. Причем не важно менял ли что то еще или нет.
Мы исправим данную проблему в одной из следующих сборок.
в VS есть такая комбинация как Ctrl+'-', которая показывает прошлое место где был курсор, очень удобная функциональность при разработке.
Мы рассмотрим данное предложение при разработке будущих версий продукта.
-
Alexander
Сообщение
Alexander » Пт 27 дек 2013 16:54
При создании процедуры форматирую полностью текс и получаю:
Код: Выделить всё
CREATE PROCEDURE test
AS
BEGIN
SELECT *
FROM
sys.objects o
END
Потом ставлю ; и получается так:
Код: Выделить всё
CREATE PROCEDURE test
AS
BEGIN
SELECT *
FROM
sys.objects o;
END
Что не очень удобно.
Сообщаем Вам, что вышла новая сборка dbForge SQL Complete, v4.5.167 Beta, в которой данная проблема устранена
http://www.devart.com/dbforge/sql/sqlco ... nload.html
Благодарим Вас за Вашу помощь в усовершенствовании dbForge SQL Complete.