#sql-server #vbscript #asp-classic
#sql #sql-server #sql-server-2008 #asp-classic #vbscript
Вопрос:
У меня есть система, которая требует, чтобы большое количество имен и адресов электронной почты (только два поля) импортировалось через загрузку CSV.
Я могу достаточно легко справиться с загрузкой, как мне проверить адреса электронной почты перед обработкой импорта.
Также как я мог бы обработать это быстро или в фоновом режиме, не требуя от пользователя просмотра работы скрипта?
Используя классический ASP / SQL server 2008.
Пожалуйста, без насмешек над классическим asp.
Комментарии:
1. какой уровень проверки вы ищете? Просматриваем поле string и убеждаемся, что там есть .com, .net, @ symbol и т.д.? Может быть, что-то вроде функции, найденной здесь: sqlteam.com/forums/topic.asp?TOPIC_ID=113963
Ответ №1:
Нужно ли выполнять эту загрузку через приложение ASP? Если нет, то лучшим инструментом для этой работы является любой язык сценариев, с которым вы чувствуете себя наиболее комфортно и который может сделать это с наименьшими затратами времени на кодирование. Если вам нужно, чтобы пользователи могли загружать файлы в классическое приложение ASP и иметь надежный процесс вставки допустимых записей в базу данных и отклонения недопустимых, ваши параметры меняются.
Нужно ли предоставлять обратную связь пользователям? Например, сообщить им, какие именно строки были недействительными?
Если вы имеете дело со вторым сценарием, я бы попросил приложение asp просто сохранить файл и запустить другой процесс, службу .net или запланированную задачу или что-то в этом роде, выполнить импорт и сообщить о его ходе в текстовом файле, который может проверить приложение asp. Это возвращает вас к выполнению этого на любом удобном для вас языке сценариев, и вам не нужно иметь дело с истечением времени ожидания http-запроса.
Если вы загуглите «regex valid email», вы можете найти множество регулярных выражений для идентификации недействительных адресов электронной почты.
Ответ №2:
В прошлой жизни я делал подобные вещи, перетаскивая файл в рабочую таблицу с помощью DTS, а затем обрабатывая его с помощью пакетов команд SQL. Сегодня вы бы использовали службы интеграции.
Это позволяет вам очень быстро передавать данные на SQL Server и предотвращать тайм-аут сценария, после чего вы можете использовать любой предпочитаемый вами метод (например, пакеты, управляемые AJAX, пакеты, управляемые перенаправлением и т.д.) Для обработки отдельных фрагментов данных или запланировать их выполнение как единый пакет (задание SQL Server) и просто сообщить о результатах.
Возможно, вам повезет обработать ваши 500 тыс. строк одним пакетом с помощью вашего сценария загрузки, но я бы не стал рисковать.