суббота, 28 января 2012 г.

Visual Studio 2010 Color Schema. Моя темная цветовая схема

Моя цветовая схема, которой я пользуюсь уже достаточно продолжительное время.

Редакотор c# кода:


XAML:


XML:


Основной каркас этой схемы когда-то накопал на сайте studiostyl.es, как она называлась изначально уже и не вспомню. Постепенно, по мере надобности, оптимизировал ее до существующей. Цвета, на мой взгляд, достаточно мягкие, что бы смотреть на них долгое время, глаза не устают.

Скачать схему

понедельник, 23 января 2012 г.

Visual Studio. Поиск русских букв в коде

Иногда, когда я пишу прототипы или набрасываю код, то снабжаю его на скорую русскими комментариями. В конечном продукте заметок на русском быть не должно, и я, прорабатывая результат, стараюсь от них избавится. Что бы не пропустить ни одного использую стандартный поиск (Ctrl+F) с regex выражением “[а-яА-ЯёЁ]”.

воскресенье, 22 января 2012 г.

MS SQL. Выборка данных без учета диакритических знаков

Встала задача находить записи в базе данных, которые содержали диакритические знаки без указания этих знаков. Например, если представить, что в базе находится фирма “Télécöm”, хотелось бы находить ее по значению “Telecom”. В результаты наших запросов эти значения не попадали.

Проблема таилась в сортировке, которая использовалась в базе данных по умолчанию: Latin1_General_ci_AS. Эта сортировка с суффиксом “_AS” различает символы с диакритическими знаками, так что 'a' и 'ấ' это не одно и то же. Сортировка с суффиксом “_AI”, ей в противоположность, считает эти символы идентичными. Подробнее о сортировках можно почитать здесь.

Итак, проблему решили путем применения сортировки Latin1_General_ci_AI на выбираемые колонки при помощи оператора COLLATE:

SELECT ID, Company
FROM Companies
WHERE (Company LIKE N'Telecom' COLLATE Latin1_General_ci_AI)

В заключении хочу добавить, что сортировка вообще определяется MS SQL Server-ом на нескольких уровнях: от уровня сервера, через уровень базы, затем через уровень столбца, до уровня выражений. Мы применили уровень выражения, но можно было бы, конечно, использовать и другие уровни.