Как стать автором
Обновить

Комментарии 55

Вещь очень полезная!
Спасибо!
Чувствую скоро пригодится. Утянул. :)
Укажите пожалуйста тип лицензии,
ну и насущный вопрос): на сорци взлянуть можно будет?
Лицензия свободная/бесплатная без ограничений. Что делать с сорцами пока думаем.
Free как пиво, или free как слово? :)
Мне вот очень нравится, как подобный функционал реализован в dbForge для работы с MySQL, частно им пользуюсь. Так что можете посмотреть для сравнения.
В вашей же программе радует количество поддерживаемых БД, довольно универсально получилось.
Дбфорг посмотрим, спасибо
Не совсем понял как запустить это под OS X и linux… можно ман выложить?
Нужно скачать и установить Mono

www.go-mono.com/mono-downloads/download.html

потом скачать zip архив для Linux & Mac OS X и запустить командой

mono SqlDynamiteX.exe
Пробовал запустить, в итоге куча ошибок и ничего не работает. Отпишитесь, кто еще пробовал и у вас получилось?
А можно лог ошибок сюда кинуть?
В Ms Sql поиск зависимостей, скажем, в хранимках, осуществляется по системной таблице syscomments?
Или есть другие механизмы отслеживания зависимостей?
Кроме syscomments используется ещё куча системных таблиц и системных же хранимых процедур
Да, в курсе. Имел в виду может есть какие-то другие инструменты получения схемы… Что-то типа «волшебного»:) xml-файла или утилиты в самом же MS Sql, которая позволяет получить схему данных.
Волшебного нету :-), а про то что есть попробуем написать в следующей статье
MySQL — невозможно загрузить файл или сборку «MySql.Data, Version 6.2.2.0, Culture=neutral, PublicKeyToken=bla-bla-bla» или один из зависимых от них компонентов. Не удается найти указанный файл.
ЧЯДНТ?
Windows 7 Pro SP1 х64, обновления все стоят.
Скачал, поставил, результат тот же!
Ну что ж тогда вот dllки эти попробуйте подложить и отпишитесь пожалуйста как и что

depositfiles.com/files/vhtim8jc9
Заработало, только вместо названий БД в селекте поля def, def, def, def (по кол-ву БД на сервере).
А вот это уже баг программы. Буду исправлять.
Дополнение: Если вписать название БД вручную, то все равно вытягивает зависимости для таблиц из всех БД, в том числе и системных.
Баг исправлен новый билд здесь:

rghost.ru/52013822
Если база данных в названии содержит пробелы(знаю что это не хорошо но законно :) ) при попытке соединится пишет: Database 'первая часть до пробела из названия' does not exists. Make sure that name is entered correctly.
Понял, этим займёмся.
Баг исправлен новый билд здесь:

rghost.ru/52013822
1) начнем с того что первая версия была написана во времена когда редгейтовской тулзы не было. Про апекс не скажу,
2) вы список поддерживаемых баз видели?
Со списком поддерживаемых баз, для которых «нужно положить dll'ки», «скачать моно, бесплатно, без SMS» мне сложно поспорить, но, право же, начинать пост рассказом про «славную тулзу ищущую по ms sql», когда для простоты картины достаточно скачать что-то вроде «gallery.technet.microsoft.com/scriptcenter/c0c57332-8624-48c0-b4c3-5b31fe641c58».

Честное слово, ждем аналог select * from all_sources для Oracle с обвязкой .Net
1. Mono нужно только для версий под Linux / Mac OS X

2. Программа умеет намного больше чем select * from all_sources, а будет уметь ещё больше если Вас послушать так и Apex с RedGate не стоило тоже разрабатывать наверное.
Все, сдаюсь, раз вы так защищаете свое детище, значит оно того стоит. )
Пусть будет еще один искатель текста, с поддержкой множества СУБД и поэтессами.
Повторюсь, наша программа искатель не только текста — также она ищет и в теле таблиц и индексов — заметьте что их DDL ни в каких таблицах типа all_sources не хранится (не в случае Oracle конечно), и программа ищет также и в них и также сама генерирует поим DDL.
1) Ещё была бы интересная фича искать в квери логе. У нас например легаси система в базе не прописано ни PK-FK ни ещё чего, 90% инфы о связях получаем из квери лога из запросов с джоинами.

Для реализации фичи нужно единожды для поддерживаемой базы узнать из какойсистемной таблицы можно селектом забрать квери лог и прицепить это дополнительным источником данных

2) Я бы в список поддерживаемых ещё добавил IBM Informix, она работает с уже поддерживаевым Вами драйвером DB2 и со своим собственным от IBM, оба ADO.NET compatible и в теории ничего пилить не нужно
Пилить как раз нужно — там метаданные по другому устроены чем в IBM DB/2 но сделаем :)
Я глубоко не копал, но мне кажется если обращаться к информиксу через DB2 драйвер (для этого сервер баз должен быть настроен на поддержку соответствующего протокола), то он и метаданные отдаёт в идентичном DB2 формате. Если именно через информиксовский, то наверное Вы правы, придётся пилить.

Ещё имхо если возьмёте курс на расширения списка поддерживаемых баз имеет смысл добавить ODBC (для которого тоже есть ADO.NET поддержка). Тут конечно уже все-все метаданные не зная типа базы не получить, но хотя бы список полей таблиц, view и тому подобные базовые вещи работают на всём зоопарке баз.

Вообще инструмент получения структуры базы стабильно работающий с минимальными возможностями на широком спектре баз имхо весьма востребован. Мы в своё время покупали очень сырую и нестабильную Database.NET чтобы получить просто инструмент «быстрого взгляда» на произвольную базу. А если Вы планируете развивать продукт не только в сторону поиска связей но и в сторону скажем генератора отчётов по структуре базы или визуализации базы — тут вообще огромное поле, к примеру годами пользователи Nhibernate просят адекватный инструмент автогенерации биндингов по существующей базе
Про ODBC имелось в виду работа с не перечисленными у вас базами, т.е. без обращения к специфичным служебным таблицам, а только за счёт стандартного подмножества ODBC комманд и ANSI SQL. Для экзотичных систем
Спасибо за столь содержательный отзыв. Увы, не всё так просто. Программа вытаскивает метаданные не используя ODBC API (вряд ли это вообще возможно), а вытаскиванием метаданных из СУБД которые для каждой СУБД очень даже разные, и конечно же расположение метаданных в СУБД ну никак не зависит от используемого драйвера (то есть в данном случае нет абсолютно никакой разницы обращаться ли к Informix через собственный драйвер или же через драйвер DB/2).
Да, я неудачно выразился по поводу метаданных. Имелось в виду что для некой неизвестной базы с ODBC (проприетарная generic odbc ) драйвером можно получить базовый набор таблиц-видов-полей-типов не имея доступа к системным таблицам за счёт повсеместно поддерживаемого подмножества ANSI 92. Не скажу точно какие используются вызовы, если инетерсно гляньте кверилог от Database.NET у них «ОДБЦ кони в вакууме» хорошо реализованы.

И ещё совет — если Вы уже поддерживаете ODBC то лучше вместо выпадающего меню с выбором драйвера оставить текстовое поле для ConnectionString. Для большинства баз всё равно выбора драйвера недостаточно для корректной работы, и люди всё равно используют либо заранее созданные в системе профили типа «DSN=profile_db1_test_root», которые уже содержат выбор драйвера, либо более сложные строки с выбором драйвера, с дополнительными параметрами подключения. Даже если вы спрашиваете например логин и пароль в форме, то для ODBC подключения часто недостаточно передать эти данные параметром login/password, для некоторых баз их надо передавать параметром UID, для многих баз нужно передавать ещё выбор бинарного протокола и кодировок итд. Та же ДБ2 поддерживаемая в зависимости от CLOL/DBLOC настройки не заведётся по одбц одним выбором драйвера. В общем имхо упростите себе и пользователям жизнь если вместо выпадающего меню драйвера будет просто ConnectionString (ну или дополнительно к выбору драйвера, всё равно внутренне вы скорее всего превращаете выбор драйвера в стринг)

Ну это в общем так, слёзы задолбавшегося кодера легаси баз )))) Я догадываюсь что ОДБЦ не приоритетное направление развития, но надеюсь будут полезны замечания
БД с точкой в названии неверно обрабатывает. К примеру, TIM_4.9 — пишет «база TIM_4 не найдена». DB Server MSSQL
Баг исправлен новый билд здесь:

rghost.ru/52013822
Спасибо пригодится, а есть утилита для оптимизации 3-4х этажных запросов? Я нашел парочку прог, но они платные, можно сказать не нашел.
Такого пока нет
поддержка sqlite3 есть в планах?
Будет вместе с Informix ближе к весне
Для PostgreSQL не поддерживается trust-подключение или я что-то не так делаю?
Упорно пишут «password authentification failed for 'postgres' „
Попробую воспроизвести и отпишусь
Не могу воспрозвести честное слово. И локально и удалённо Trusted Connection у меня работает.
При коннекте к базе: не удалось загрузить файл или сборку Npsql Version 2.0.8.0, Culture=neutral либо одну из из зависимостей.
Windows 7 sp1, postgresql 9.2, .NET 4.5.1
По моему, очень важно искать зависимость программного кода и объектов БД
Посмотрите: ODA
Обозреватель зависимостей объектов БД
www.samtrest.com
Заточен на Oracle,PL/SQL, Informatica, но не только…
ссылка на скачивание инсталлера для винды битая
Зарегистрируйтесь на Хабре, чтобы оставить комментарий