Выпуск 80. Импорт данных в Dotnetnuke
Подписка: "Microsoft Access - программирование и готовые решения"
Дата: 16.07.2007
Автор: Админ Leadersoft.ru
Сайт: http://help.leadersoft.ru/
Категория: Создание adp проектов
Данная статья ориентирована на тех, кто хорошо разбирается в программировании и структурах различных файлов. Она может быть полезна тем, кто разрабатывает конверторы для импорта или экспорта разных баз данных
О Dotnetnuke |
Технология www.Dotnetnuke.com - это быстрая разработка сайтов, с использованием простых инструментов редактирования. Вам не надо знать программирование для того, чтобы создать профессиональный сайт с великолепным дизайном. Пока не будем говорить в этой рассылке о ее преимуществах, но они, конечно, значительны |
Введение в тему |
Сама база данных сайта Dotnetnuke написана на Microsoft SQL Server и хорошо интегрируется с Microsoft Access. Это и будет показано в этом примере. Суть работы. Имеется много однотипных файлов из конференции на perl в формате htm, которые хорошо читаются браузерами, но из-за большого количества сообщений более 7500 штук, конференция медленно работает. Потребовалось перенести ее в другую базу данных. Этот пример показывает, как можно быстро выполнить импорт данных в Dotnetnuke за несколько минут.
В качестве вариантов рассматривалась конференция на MySQL (phpBB), но из-за слабой защиты от спама, да и не возможности прямого доступа из Access этот вариант отпал. Лучший выбор пока dotnetnulke, т.к. к конференции прилагается еще и много бесплатных модулей: http://client.leadersoft.ru/Технологии/Разработкасайтов/tabid/76/Default.aspx |
Алгоритм решения |
Предварительная работа
1. Необходимо определить структуру для сохранения прочитанных сообщений (Автор, Дата, Тема, Сообщение и т.п.)
2. Найти теги, которые будут определять сообщения. Например, . Тема: Импорт данных Тег font определяет внутри htm тему, которую мы потом сохраним в нашей структуре.
3. Найти процедуру в конференции (или создать ее самому), которая будет сохранять в базе данных сообщения. Запустив ее и передав параметры сообщений, мы тем самым сможем быстро заполнить базу данных информацией из файлов htm
4. Найти код на VBA, который в цикле читает все файлы из папки. Это нужно, если файлов много и не надо их вводить по одному в программу для разбора.
5. Найти программы, которые читают содержимое и переименовывают файлы операционной системы. Это пригодится нам, для чтения файла в буфер для анализа. Это лучше, когда весь файл читается, а не анализируется построчно. После разбора файла его нужно переименовать, чтобы не использовать повторно, т.к. возможны сбои при чтении нескольких файлов. Например, формат другой, пустые файлы и т.п. И нам придется запускать программу повторно.
Основная работа
Далее мы переходим к программированию и создаем управляющую форму и VBA код. Он указан ниже. Его можно, конечно, настроить и на другой тип htm файлов.
Заключение
Проще будет, если Вы скачаете пример по этой ссылке: http://help.leadersoft.ru/Загрузка/tabid/75/Default.aspx Раздел dotnetnuke или Конвертеры
Если остались вопросы их можно задать в блоге: http://help.leadersoft.ru/tabid/126/EntryID/15/Default.aspx
P.S. Для загрузки примеров нужна регистрация на сайте: http://help.leadersoft.ru |
Код на VBA |
' Все объекты объявления в форуме
Public Type tpAdds
User As String ' Имя пользователя
Email As String ' Имя почты
AddDate As Date ' Дата записи
Subject As String ' Тело
Body As String ' Текст
Section As String ' Секция
End Type
Public adds() As tpAdds ' Объявления на одну тему
Public tags(10) As String ' Список тегов
Public fso ' Объект файловой системы
Public frmMain As Form ' Форма для вывода данных
' Читаем все файлы html
Public Function funReadHtml(frm As Form, MaxAdds As Long) ' Максимальное число объявлений, 0 - все загружаем
Dim fname As String, html, buf, i As Long
Dim cnn As ADODB.Connection
' Инициализация тегов для html файла
Set frmMain = frm
' Поиск имени
tags(0) = "size=""2"">"
tags(1) = "
"
' Поиск Email
tags(2) = "mailto:"
tags(3) = """"
' Поиск даты и времени
tags(4) = "alt=""Email"">
"
tags(5) = "
"
' Поиск темы
tags(6) = ""
tags(7) = ""
' Поиск сообщения
tags(8) = "Сообщение:
"
tags(9) = " |
|