В городе поменялись номера, к 6 значным надо прибавить двойку, междугородний код 3912 стал 391, собственно изменения внутригородские.
Начальник сказал что нужно в базе обновить номера. Хотел сначала в sql, но 2000 не поддерживает регулярные выражения, а строковыми функциями - себе дороже.
Решил написать страничку, выбираешь тип объекта, она показывает список строковых полей, выбираешь нужное, и смотришь что там забито. Можно указывать фильтр.
Посмотрев содержание поля, набираем регулярное выражение, применяем его, если все устраивает пишем в базу.
Реализация из трех этапов
1 - загрузить типы объектов которые можно смотреть. Забил их вручную - клиент\контакт\интерес
2 - загрузить все строковые поля. Использовал metadata service
3 - загрузить содержимое поля, использовал sqldatareader - тупо составляем запрос
4- регулярные выражения - тут всю работу делает RegEx мы только обходим грид, разбиваем телефоны по разделителю (",","\","/") добавляем 2 для 6 значных номеров. Склеиваем все обратно
5 - обновление данных. Обновляем всегда только через webservice, поэтому надо работать с dynamicentity.
Что из этого получилось:
пример данных
[316x698]Указали регулярное выражение - и жмем применить и сохранить
[547x699]Проверил - работает. Таким же образом можно корректировать любые строковые данные в базе, форматировать их внешний вид. Прикладываю файл проекта, как говорится применяйте на свой страх и риск, никто ниче не гарантирует. И всегда делайте бекап перед обновлением базы!!!
Удачи!!!