Спасибо за ответ.
У меня ИРБИС 64.
Собственно задача решена, поделюсь решением.
Задача: получить доступ с сайта библиотеки к ограниченной БД (нужна возможность поиска по базе CD/DVD, поиск по книжкам не нужен)
Суммарное число записей около 600.
Решение:
1. Экспортируем нужные нам записи в формате *xml.
2. Открываем их из Excel. Имея 600 записей я получил таблицу с 9000 записей. Здесь стоит отметить: максимальный размер таблицы в Excel 2^16 записей, так что если надо экспортировать более ~4000 записей, стоит искать другого решения.
3. Выбираем первичный ключ. Можно в качестве него использовать mfn.
В таком случае макрос VBA выглядит так:
Sub DelRows()
With Sheets("Имя_Листа")
For xCounter = 1 To .Rows.Count
If .Cells(xCounter, "A") = .Cells(xCounter + 1, "A") Then .Rows(xCounter).EntireRow.Delete
Next xCounter
End With
End Sub
Мне нужен был первичный ключ - инвентарный номер товара. Макрос такой:
Sub DelRows()
With Sheets("Имя_Листа")
For xCounter = 1 To .Rows.Count
If .Cells(xCounter, "AU") = "" Then .Rows(xCounter).EntireRow.Delete
Next xCounter
End With
End Sub
Пояснение: кто незнаком с VBA -- здесь .Cells(Номер_строки, Номер_столбца)
Здесь можно пойти попить кофию и немного поплясать с бубном -- макрос у меня выполнялся минут 20.
4. В результате из 9000+ записей я получил 600 записей, по одной для каждого объекта. Далее удаляем лишние столбцы -- для поиска по базе нужны, разумеется, не все поля. Я оставлял порядка 20 полей из 50 с чем-то.
5. Открываем Exlec'м таблицу users.xml из прикрепленного архива. Полученную нами таблицу сперва копируем в таблицу users.xml а затем сохраняем в формате XML-данные (
!не таблица XML)
6. Скачиваем прикрепленный архив, в нем все что необходимо для конвертации XML - MySql и обратно (спасибо
бразильским кодерам :) )
7. Распаковываем архив на наш локальный сервер, например, /localhost/tools/xml2mysql
8. Вставляем наш XML файл в эту же папку, переименовываем в user.xml -- или копаемся в коде и меняем все как надо.
9. Создаем в phpmyadmin базу icorp_master и таблицу users -- потом можно поменять.
10. Выполняем SQL-запрос users.sql - он в прикрепленном архиве. Создастся таблица примера. В ней меняем типы данных полей, добавляем/удаляем -- потом можно будет поменять и названия.
11. Исполняем скрипт
example_xml_to_mysql.phtml -- имеет смысл предварительно увеличить время выполнения скриптов в
php.ini
Скрипт пишет логи, если что-то не будет работать, можно посмотреть там.
! Могут возникнуть проблемы с двойными ковычками в нашей таблице -- если они есть, стоит заменить их на что-то подходящее.
12. Осталось поменять имена полей в phpmyadmin, и можно приступать к работе. Чем я сейчас и займусь :)
PS1.
В файле class.connection.phtml
#24 меняем настройки подключения к базе mysql на наши.
PS2.
Решение, мягко говоря, нетривиальное и не самое лучшее -- пришлось устраивать пляски с бубном, т.к. времени было мало. Пишите в этой теме любые вопросы и предложения.
Редактировано 5 раз. Последний раз 07.09.2008 21:26 пользователем Обухов Никита.