Здравствуйте.
Когда ждать вторую версию?
Очень интересует поддержка 10 версии. А то даже посмотреть студию не получается.
И механизм сравнения объектов, схем планируется? Может разрабатывается как отдельный продукт?
Хотя бы выгрузка всех объектов в файлы будет?
Все это нужно, что бы сложить структуру БД в GIT, пусть внешними средствами, но хранить историю разработки. И простым сравнением файлов получать список изменений.
З.Ы. Очень сложно найти русский форум. Прям вот еле откопал. Ссылка с шапки сайта (меню поддержка) даже с русской версии сайта ведет на английский форум. И только ссылка в подвале привела на русский.
Найден 161 результат
- Пт 12 окт 2018 09:51
- Форум: dbForge for PostgreSQL
- Тема: dbForge for PostgreSQL
- Ответы: 22
- Просмотры: 59402
- Пт 01 дек 2017 12:38
- Форум: dbForge for SQL Server
- Тема: Execution Timeout Expired
- Ответы: 3
- Просмотры: 18262
Re: Execution Timeout Expired
Хорошо, спасибо.
Сейчас ситуация с тем же запросом не повторяется, попробую как возникнет.
Сейчас ситуация с тем же запросом не повторяется, попробую как возникнет.
- Чт 30 ноя 2017 14:03
- Форум: dbForge for SQL Server
- Тема: Execution Timeout Expired
- Ответы: 3
- Просмотры: 18262
Re: Execution Timeout Expired
При этом сам запрос выполняется в MSSMS за 2 секунды.
С оберткой SET FMTONLY ON;, он же выполняется 18 секунд и ничего не отваливается.
С оберткой SET FMTONLY ON;, он же выполняется 18 секунд и ничего не отваливается.
- Чт 30 ноя 2017 13:59
- Форум: dbForge for SQL Server
- Тема: Execution Timeout Expired
- Ответы: 3
- Просмотры: 18262
Execution Timeout Expired
Последнее время все чаше стал сталкиваться со следующей ошибкой. При этом раньше никогда не возникала.
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
При этот тот же запрос в MS SMS отрабатывает без проблем.
Зависает на SET FMTONLY OFF; SET FMTONLY ON; текст запроса SET FMTONLY OFF;
Что не так? Что где настроить, исправить?
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
При этот тот же запрос в MS SMS отрабатывает без проблем.
Зависает на SET FMTONLY OFF; SET FMTONLY ON; текст запроса SET FMTONLY OFF;
Что не так? Что где настроить, исправить?
- Ср 26 июл 2017 09:20
- Форум: dbForge for SQL Server
- Тема: Автоматическое добавление определения переменных
- Ответы: 1
- Просмотры: 12457
Автоматическое добавление определения переменных
Здравствуйте.
Есть ли такой функционал или может вам понравиться и вы решите это сделать?
В скрипте при запуске есть вопрос о вводе значений переменных, которые не определены в самом скрипте. А можно ли написать все DECLARE в начале скрипта, по нажатию какой-то одной кнопки. Что бы не задавать их в отдельном окне а видеть прям в тексте скрипта.
Это удобно когда пересылаешь скрипт другим людям, а значения уже заданы.
Было бы удобно по комбинации кнопок и в выпадающем меню иметь такую функцию. Нажал и в первых строчках появились все определения со значениями по умолчанию.
ЗЫ. Только не отправляйте меня писать это в голосование по пожеланиям.
Есть ли такой функционал или может вам понравиться и вы решите это сделать?
В скрипте при запуске есть вопрос о вводе значений переменных, которые не определены в самом скрипте. А можно ли написать все DECLARE в начале скрипта, по нажатию какой-то одной кнопки. Что бы не задавать их в отдельном окне а видеть прям в тексте скрипта.
Это удобно когда пересылаешь скрипт другим людям, а значения уже заданы.
Было бы удобно по комбинации кнопок и в выпадающем меню иметь такую функцию. Нажал и в первых строчках появились все определения со значениями по умолчанию.
Код: Выделить всё
DECLARE @str VARCHAR(20) = '';
DECLARE @inc INT = 0;
- Пт 26 май 2017 14:36
- Форум: dbForge for SQL Server
- Тема: Сравнение схем
- Ответы: 6
- Просмотры: 18691
Re: Сравнение схем
Создаем такой набор объектов в двух БД
далее на одной из бд выполняем
в результате сравнения получаем скрипт
Я чуть сократил, но суть понятна.
У вас обработка представлений идет по алфавиту, а надо что бы сначала создавались удаленные, а уже потом рефреш.
Код: Выделить всё
CREATE TABLE dbo.test (
id INT NOT NULL,
link VARCHAR(50) NULL,
CONSTRAINT PK_test_id PRIMARY KEY CLUSTERED (id)
) ON [PRIMARY]
GO
CREATE VIEW dbo.v_test
WITH SCHEMABINDING
AS SELECT t.link, count_big(*) AS cnt
FROM dbo.test AS t
GROUP BY t.link
GO
CREATE UNIQUE CLUSTERED INDEX ix_v_test
ON dbo.v_test (link)
ON [PRIMARY]
GO
CREATE VIEW dbo.v_big_test
AS SELECT t.id
FROM dbo.test AS t
INNER JOIN v_test AS v
ON t.link = v.link
WHERE v.cnt > 100
GO
CREATE VIEW dbo.v_test_big
AS SELECT t.id
FROM dbo.test AS t
INNER JOIN v_test AS v
ON t.link = v.link
WHERE v.cnt > 100
GO
Код: Выделить всё
ALTER TABLE dbo.test
ADD value INT NULL
GO
Код: Выделить всё
--
-- Удалить представление [dbo].[v_test]
--
DROP VIEW IF EXISTS [dbo].[v_test]
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
--
-- Создать столбец [value] для таблицы [dbo].[test]
--
ALTER TABLE [dbo].[test]
ADD [value] [int] NULL
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
--
-- Обновить представление [dbo].[v_big_test]
--
EXEC sp_refreshview '[dbo].[v_big_test]'
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
--
-- Создать представление [dbo].[v_test]
--
GO
CREATE VIEW [dbo].[v_test]
WITH SCHEMABINDING
AS SELECT t.link, count_big(*) AS cnt
FROM dbo.test AS t
GROUP BY t.link
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
--
-- Создать индекс [ix_v_test] для объекта типа представление [dbo].[v_test]
--
CREATE UNIQUE CLUSTERED INDEX [ix_v_test]
ON [dbo].[v_test] ([link])
ON [PRIMARY]
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
--
-- Обновить представление [dbo].[v_test_big]
--
EXEC sp_refreshview '[dbo].[v_test_big]'
GO
IF @@ERROR<>0 OR @@TRANCOUNT=0 BEGIN IF @@TRANCOUNT>0 ROLLBACK SET NOEXEC ON END
GO
У вас обработка представлений идет по алфавиту, а надо что бы сначала создавались удаленные, а уже потом рефреш.
- Пт 26 май 2017 10:40
- Форум: dbForge for SQL Server
- Тема: Скрипт изменения таблицы
- Ответы: 2
- Просмотры: 13589
Скрипт изменения таблицы
В таблице поменял порядок полей в primary key, при нажатии на кнопку скрипт изменений, падает.
Я бы отправил вам полный отчет о ошибке, но уж больно много личной информации в нем.
Код: Выделить всё
Message: Ссылка на объект не указывает на экземпляр объекта.
Source: Devart.DbForge.DbObjects.SqlServer
TargetSite: Void Merge(Devart.DbForge.IDbObject, Devart.DbForge.Compare.ISchemaSyncContext)
HelpLink:
Type: System.NullReferenceException
Place: 2
Stack:
в Devart.DbForge.DbObjects.SqlServer.SqlRelationalIndexDifference.Merge(IDbObject result, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.Difference`1.GetRecreateActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.SqlServer.SqlIndexDifference.GetRecreateActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.SqlServer.SqlRelationalIndexDifference.GetRecreateActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.Difference`1.GetSyncActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.SqlServer.SqlRelationalIndexDifference.GetSyncActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.SqlServer.SqlTableDifference.SyncDetails(List`1 actions, IDictionary`2 detachedActions, ISchemaSyncContext context, InternalDependencyHandler internalDependencyHandler)
в Devart.DbForge.DbObjects.SqlServer.SqlTableDifference.AddSyncActions(List`1 actions, IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.Difference`1.GetSyncActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.DbObjects.SqlServer.SqlTableDifference.GetSyncActions(IList`1 removeDependenciesActions, IList`1 invalidDependencies, IDictionary`2 detachedActions, ISchemaSyncContext context)
в Devart.DbForge.Synchronization.Schema.ObjectSynchronizer.SynchronizeTargetObject(SynchronizationContext context, SyncObject syncObject)
в Devart.DbForge.Synchronization.Schema.ActionComposer.<>c__DisplayClass0_0.<GenerateSyncActions>b__1(SynchronizationContext _context, SyncObject syncObject)
в Devart.DbForge.Synchronization.Schema.ObjectSynchronizer.SynchronizeObjects(SynchronizationContext context, IList`1 objects, SynchronizeObjectDelegate syncProcedure)
в Devart.DbForge.Synchronization.Schema.ActionComposer.GenerateSyncActions(SynchronizationContext context)
в Devart.DbForge.Compare.SchemaSynchronization.WriteUpdateScript(TextWriter writer, IList`1 comparisonObjects, IOptionGroup options)
в Devart.DbForge.Compare.ComparisonService.WriteAlterScript(TextWriter writer, IList`1 source, IList`1 target, IOptionGroup options, Boolean mapObjectsAsIs, Boolean throwOnUnsupported, Boolean updateStatusBar)
в Devart.DbForge.Compare.ComparisonService.GetAlterScript(IList`1 source, IList`1 target, IOptionGroup options, Boolean mapObjectsAsIs, Boolean throwOnUnsupported, Boolean updateStatusBar)
в Devart.DbForge.Compare.ComparisonService.GetAlterScript(IDbObject source, IDbObject target, IOptionGroup options, Boolean mapObjectsAsIs, Boolean throwOnUnsupported, Boolean updateStatusBar)
в Devart.DbForge.DbObjects.DbObjectEditHelper.GetAlterTableScript(IDbTable sourceTable, IDbObject targetTable, ISchemaComparisonOptions options)
в Devart.DbForge.DbObjects.DbTableEditor.GetCurrentAlterText(Boolean toUpdateDatabase)
в Devart.DbForge.DbObjects.DbObjectEditor.HtcmBRwvq1(Boolean , DbObject , Boolean )
в Devart.DbForge.DbObjects.DbObjectEditor.GetScriptChanges(Boolean toUpdateDatabase, Boolean withRefactoring)
в Devart.DbForge.DbObjectDocument.GetScriptChanges(DbObject dbObject, DbObject localDbObject, Boolean withRefactoring, Boolean toUpdateDatabase)
в Devart.DbForge.DbObjectDocument.VmFXEQVgT(Boolean )
в Devart.DbForge.DbObjectDocument.RIsP2fr4Jk(ICommand , CommandStatus& , Object )
в Devart.DbForge.DbObjectDocument.PS6PkcY76b(ICommand , CommandStatus& , Object )
в Devart.Shell.Common.CommandTargetHelper.InvokeCommand(ICommand command, Object instance)
в Devart.DbForge.ConnectedDocument.InvokeCommand(ICommand command, Object instance)
в Devart.Shell.CommandService.InvokeCommand(ICommand command, Object instance, IList`1 commandTargetChain)
в Devart.Shell.DocumentHostControl.documentButton_Click(Object sender, EventArgs e)
в System.Windows.Forms.Control.OnClick(EventArgs e)
в Controls.Editors.DropDownButton.OnClick(EventArgs e)
в Controls.Editors.BaseButton.OnMouseUp(MouseEventArgs e)
в Controls.Editors.DropDownButton.OnMouseUp(MouseEventArgs e)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в Controls.Utils.Controls.ControlBase.WndProc(Message& m)
в Controls.Editors.DropDownButton.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
- Вт 16 май 2017 12:54
- Форум: dbForge for SQL Server
- Тема: Генерация документации
- Ответы: 3
- Просмотры: 10833
Re: Генерация документации
Отправил на почту.
- Пн 15 май 2017 14:11
- Форум: dbForge for SQL Server
- Тема: Генерация документации
- Ответы: 3
- Просмотры: 10833
Генерация документации
А какими правами надо обладать чтобы создать документацию?
У нас принципиально нет у разработчиков прав sysadmin. И у меня ругается при попытке создать документацию.
У нас принципиально нет у разработчиков прав sysadmin. И у меня ругается при попытке создать документацию.
Произошла ошибка во время построения объектов сервера: 'User does not have permission to perform this action.'
- Пн 15 май 2017 14:06
- Форум: dbForge for SQL Server
- Тема: Поиск объектов
- Ответы: 2
- Просмотры: 15091
Поиск объектов
Здравствуйте.
В окне поиска объектов, если вставить из буфера обмена текст в поле "Object Search" и не нажать на поиск, а например перейти к выбору БД, то текст пропадает.
Не критично, но постоянно на это натыкаюсь, т.к. открывая окно начинаешь заполнять поля слева на право, т.е. сначала вставляешь текст поиска, а уже потом выбираешь в каких БД это искать.
Будет здорово, если текст не будет пропадать.
В окне поиска объектов, если вставить из буфера обмена текст в поле "Object Search" и не нажать на поиск, а например перейти к выбору БД, то текст пропадает.
Не критично, но постоянно на это натыкаюсь, т.к. открывая окно начинаешь заполнять поля слева на право, т.е. сначала вставляешь текст поиска, а уже потом выбираешь в каких БД это искать.
Будет здорово, если текст не будет пропадать.
- Ср 03 май 2017 15:37
- Форум: dbForge for SQL Server
- Тема: Сравнение схем
- Ответы: 6
- Просмотры: 18691
Сравнение схем
Здравствуйте.
У меня есть таблица для которой созданы несколько представлений, включая индексированное представление (WITH SCHEMABINDING). При этом представления к этой таблице ссылаются сами на себя, а точнее на это индексированное представление.
Примерно так:
index_view = select from table
view = select from table join index_view
Так вот при изменении таблицы инструмент сравнения создает скрипт при котором он сначала удаляет все зависимые представления, потом обновляет таблицу, а потом актуализирует все представления (sp_refreshview) и уже в конце создает недостающие представления.
В следствии чего у меня падает скрипт обновления на стадии sp_refreshview, т.к. не все представления в данный момент существуют.
Было бы хорошо, если бы сначала создавались все удаленные объекты, а уже потом проходить sp_refreshview по остальным.
У меня есть таблица для которой созданы несколько представлений, включая индексированное представление (WITH SCHEMABINDING). При этом представления к этой таблице ссылаются сами на себя, а точнее на это индексированное представление.
Примерно так:
index_view = select from table
view = select from table join index_view
Так вот при изменении таблицы инструмент сравнения создает скрипт при котором он сначала удаляет все зависимые представления, потом обновляет таблицу, а потом актуализирует все представления (sp_refreshview) и уже в конце создает недостающие представления.
В следствии чего у меня падает скрипт обновления на стадии sp_refreshview, т.к. не все представления в данный момент существуют.
Было бы хорошо, если бы сначала создавались все удаленные объекты, а уже потом проходить sp_refreshview по остальным.
- Пн 17 апр 2017 10:23
- Форум: dbForge for SQL Server
- Тема: Память
- Ответы: 6
- Просмотры: 28850
Re: Память
Я нашел в чем проблема. Это окно системы управления версиями.
На любой базе нажимаю "Зафиксировать" открывается окно, ничего не делаю закрываю его, а память при этом практически не освобождается.
Поэкспериментировал с разными базами или даже если одну и туже базу открывать, догнал занятость памяти до 500 метров. При этом и со временем память не освобождается. Ну а так как я вообще не закрываю ваше приложение вот и получал со временем большие значения.
Как систему контроля версий использую GIT, тип баз Dedicated.
На любой базе нажимаю "Зафиксировать" открывается окно, ничего не делаю закрываю его, а память при этом практически не освобождается.
Поэкспериментировал с разными базами или даже если одну и туже базу открывать, догнал занятость памяти до 500 метров. При этом и со временем память не освобождается. Ну а так как я вообще не закрываю ваше приложение вот и получал со временем большие значения.
Как систему контроля версий использую GIT, тип баз Dedicated.
- Вт 11 апр 2017 13:14
- Форум: dbForge for SQL Server
- Тема: Память
- Ответы: 6
- Просмотры: 28850
Re: Память
Я попробую. Пока мне не удалось понять в какой именно момент это происходит, я всегда вижу только результат.
- Вт 11 апр 2017 12:33
- Форум: dbForge for SQL Server
- Тема: Память
- Ответы: 6
- Просмотры: 28850
Память
Здравствуйте.
Не знаю даже что написать в дополнение и как это происходит, но например из нестандартного у меня есть процедуры, которые возвращают до 30 запросов и открывается 30 вкладок.
И компьютер не выключается, так что ваша студия может быть постоянно открыта неделю, две.
В момент скриншота все вкладки закрыты и после закрытия прошло минут 5.
Не знаю даже что написать в дополнение и как это происходит, но например из нестандартного у меня есть процедуры, которые возвращают до 30 запросов и открывается 30 вкладок.
И компьютер не выключается, так что ваша студия может быть постоянно открыта неделю, две.
В момент скриншота все вкладки закрыты и после закрытия прошло минут 5.
- Ср 29 мар 2017 17:09
- Форум: dbForge for SQL Server
- Тема: GIT
- Ответы: 12
- Просмотры: 53418
Re: GIT
Не смог поменять пароль в подключении к GIT.
База уже привязана к GIT репозиторию. В репозитории поменял пароль, при попытке подключения логично пишет что не авторизовано. Но вот так и не смог найти, а где же поменять пароль в этой форме или где посмотреть список всех соединений и там поменять пароли?
Точнее список всех соединения я потом нашел через подключение новой базы к репозиторию (может есть путь логичнее?) и даже поменял там пароли во всех соединениях, но вот на уже привязанные базы это никак не подействовало они так и не подключаются, пришлось разорвать подключение и подключить заново.
В общем все конечно решилось, но это долго и очень не удобно, логично если при такой ошибке выдавало бы окно со свойствами соединения и возможностью их поменять. Или по шестеренке справа.
База уже привязана к GIT репозиторию. В репозитории поменял пароль, при попытке подключения логично пишет что не авторизовано. Но вот так и не смог найти, а где же поменять пароль в этой форме или где посмотреть список всех соединений и там поменять пароли?
Точнее список всех соединения я потом нашел через подключение новой базы к репозиторию (может есть путь логичнее?) и даже поменял там пароли во всех соединениях, но вот на уже привязанные базы это никак не подействовало они так и не подключаются, пришлось разорвать подключение и подключить заново.
В общем все конечно решилось, но это долго и очень не удобно, логично если при такой ошибке выдавало бы окно со свойствами соединения и возможностью их поменять. Или по шестеренке справа.