2010-07-26 3 views
7

Я искал бесплатную библиотеку/исходный код для форматирования SQL-запросов, предпочтительно в .NET, довольно долгое время. Даже после поиска некоторых ответов здесь на SO, я почти в точке, где я готов поверить, что ничего подобного не существует.Есть ли бесплатная библиотека форматирования SQL для .NET?

Ближайшая вещь, которую я нашел, проект под названием sqlformat, кажется, не активен и не поддерживает даже поддерживаемое подмножество функций SQL для форматирования.

Есть ли свободные или свободно распространяемые библиотеки форматирования SQL? Я не хочу консервированного продукта, так как мне нужно интегрировать эту функциональность в инструмент, который я создаю. Веб-службы также неприемлемы, поскольку те, что я нашел как T-SQL Tidy, оказались не очень надежными.

+0

Какая цель? переформатировать код перед исполнением, исправить форматирование в окне запроса или что-то еще? – StingyJack

+0

Это внутренний инструмент, который позволяет нашим разработчикам переформатировать текст (SQL - это всего лишь один из вариантов использования) для проверки и согласованности. SQL может выплевываться из нашего приложения в однострочном формате, и хорошо иметь возможность перевести его в читаемый формат. –

ответ

3

Я не знаю о бесплатной версии, но есть один здесь всего за 100 долларов, и вы можете попробовать его в течение 60 дней (выберите версию API).

http://www.dpriver.com/buynow.php

Это не бесплатно, но на $ 100, это, вероятно, менее чем за 2 часа вашего времени, пытаясь найти/интегрировать бесплатный один

12

Я начал с открытым исходным кодом .Net 2.0 T-SQL которая официально официально «v1 Done», без каких-либо известных проблем: http://www.architectshack.com/PoorMansTSqlFormatter.ashx

Я также создал онлайн-службу форматирования SQL (например, SQLTidy и несколько других, за исключением того, библиотека форматирования, которая управляет им с открытым исходным кодом и полностью функциональна): http://poorsql.com/

Извините, что так поздно, но, надеюсь, это помогает кому-то другому. Конечно, любая обратная связь была бы замечательной!

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Лицензия AGPL лицензирована, поэтому не подходит для интеграции в коммерчески лицензированные/распределенные приложения; но для любых внутренних процессов (непрерывное интегрирование/контроль качества источника) это должно быть хорошо.

(Edit: Обновленный статус библиотеки)

+2

Эта библиотека работала очень хорошо для меня, и теперь есть Nuget для нее: http://nuget.org/packages/PoorMansTSQLFormatter/ –

+0

Спасибо за лицензионное примечание. Цитата с сайта: «Если вы решите перераспределить/разоблачить функциональность, то вы должны сделать источник доступным для получателей/пользователей (даже для веб-службы)». http://www.architectshack.com/PoorMansTSqlFormatter.ashx#License__Redistribution_7 – Julian

2

Я знаю, что это старый пост, но там не было много хороших ответов. У меня был такой же вопрос и нашел это решение для VB6 на VBForums by si_the_geek - один из их супермодераторов.

VB Forums Thread for formatting SQL Select (VB6)

Поработав с VB6 и VB.NET, это было несложно преобразовать. В нижней части резьбы имеет ссылку VB.NET или вы можете получить к нему прямо отсюда:

VB.NET SQL Formatting Module

Вы должны быть в состоянии преобразовать это в C# с одним из инструментов преобразования онлайн без проблем.

Будьте осторожны, однако библиотека не является коммерческим кодом - она ​​работает очень хорошо для довольно простых ВЫБОР. Для сложного оператора SQL с несколькими подвыборками я обнаружил ошибки в результирующем SQL.

С наилучшими пожеланиями,

Дэвид

пс. О, да....это бесплатно! :)

Смежные вопросы