22.05.2007, 13:20 | #1 |
Участник
|
Нужна сделать автоматическое обновление данных в MySQL на базе даных из Навижена.
Как бы это максимально автоматически сделать ? Хотелось бы чтобы это обноаление вызывалось либо автоматически (например раз в сутки) или каким-нибудь PHP скриптом. Navision стоит на Navision DataBase Server (хотя как я понимаю тут это неважно) |
|
22.05.2007, 13:29 | #2 |
Участник
|
Много таблиц вы хотите синхронизировать (если я правильно понял ваш вопрос =) ) ?
|
|
22.05.2007, 13:37 | #3 |
Участник
|
Нет. Таблиц не так много (около 10)
|
|
22.05.2007, 13:44 | #4 |
Участник
|
Если автоматически раз в сутки, то вызывайте вашу выгрузку (отчет, датапорт, xmlпорт, надеюсь что она у вас уже есть) по таймеру, сама выгрузка может выполняться либо на клиенте либо на application сервере (что отожрет одну сессию).
Если php скриптом, то без CFRONTа не обойтись. Где у вас Mysql? На UNIX машине или на windows? Если таблиц всего 10, то можно пойти таким путем, добавьте ваши таблицы в "Журнал Измений", потом модифицируйте 423 кодюнит так чтобы он складывал измененные записи в какую то таблицу, а на application сервере периодически или запускайте отчет который будет выгружать ваши записи куда нужно. А там вы их подберете так и чем, как захотите. |
|
22.05.2007, 13:54 | #5 |
Участник
|
на Windows (я пока просто тестирую процесс, поэтому все на локальной машине делаю)
Я просто совсем в MySQL не секу. Мне вот и интересно какую надо там команду написать, для обращения к навиженовскому ODBC драйверу, так чтобы некоторые таблицы из навижена скопировались в базу mysql ? Проблема просто еще том, что в навижане у нас очнь урезанная лицензия - мы ваще там практически прогать неможем - поэтому путь: Автоматически навижен выкалвдывает данные через датапорт в текатовый файл, а его потом читает myqsl, не подходит. Можно конечно все на Access напсать - там можно явно сделать копирование таблиц через навижановскийи MySQLий ODBC драйвера. Но хочется без Access обойтись. |
|
22.05.2007, 13:59 | #6 |
Участник
|
Цитата:
на Windows (я пока просто тестирую процесс, поэтому все на локальной машине делаю)
Цитата:
Я просто совсем в MySQL не секу. Мне вот и интересно какую надо там команду написать, для обращения к навиженовскому ODBC драйверу, так чтобы некоторые таблицы из навижена скопировались в базу mysql ?
Цитата:
Проблема просто еще том, что в навижане у нас очнь урезанная лицензия - мы ваще там практически прогать неможем - поэтому путь: Автоматически навижен выкалвдывает данные через датапорт в текатовый файл, а его потом читает myqsl, не подходит.
|
|
22.05.2007, 14:11 | #7 |
Участник
|
Кстати дока по ODBC лежит на диске с Nav, зовется w1w1nodbc.pdf, посмотрите, там много всего интересного...
Цитата:
Я просто совсем в MySQL не секу. Мне вот и интересно какую надо там команду написать, для обращения к навиженовскому ODBC драйверу, так чтобы некоторые таблицы из навижена скопировались в базу mysql ?
Цитата:
ODBC (Open DataBase Connectivity) — это открытый интерфейс доступа к базам данных, разработанный фирмой X/Open.
В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных был необходим нестандартный код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки данных источникам данных различных типов. Этот интерфейс был назван open database connectivity (открытая связь с базами данных). C помощью ODBC программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками. MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным функциональным API. Вместо создания простой оболочки функционального API, разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных. |
|
22.05.2007, 14:48 | #8 |
Участник
|
Кстати, если у вас все будет на Windows, можно просто цепляться php скриптом через ODBC к Nav базе и синхронизировать нужные вам таблицы, лицензия на ODBC я думаю у вас есть. Такой вариант устраивает?
|
|
22.05.2007, 16:33 | #9 |
Участник
|
Цитата:
Сообщение от Forward
Кстати дока по ODBC лежит на диске с Nav, зовется w1w1nodbc.pdf, посмотрите, там много всего интересного...
Скопировать таблицы какой то командой из командной стоки не получится, так как: Поэтому без программирования либо на передающей стороне, либо на принимающей никак не обойтись... Ну в итоге и надо сделать PHP интерфесы работы с этими данными. Так что через них и обновлять наверно будем |
|
22.05.2007, 16:36 | #10 |
Участник
|
Цитата:
Но я не понимаю как из MySQL (или из PHP) зацепиться за DNS, на которм лежит N/ODBC |
|
22.05.2007, 16:51 | #11 |
Участник
|
Ставите NODBC, который есть на диске с NAV, на машину откуда будете присоединятся к БД NAV, потом берете вышеуказанный документ =). И настраиваете все как там написано, ничего сложного там нет. Потом пишете на php, примерно так
Код: <?php $db_link = odbc_connect($dsn, $username, $password, SQL_CURSOR_FORWARD_ONLY) or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg())); ?> |
|