AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2007, 13:20   #1  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Регистрация: 19.06.2006
Нужна сделать автоматическое обновление данных в MySQL на базе даных из Навижена.
Как бы это максимально автоматически сделать ?
Хотелось бы чтобы это обноаление вызывалось либо автоматически (например раз в сутки)
или каким-нибудь PHP скриптом.
Navision стоит на Navision DataBase Server (хотя как я понимаю тут это неважно)
Старый 22.05.2007, 13:29   #2  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Много таблиц вы хотите синхронизировать (если я правильно понял ваш вопрос =) ) ?
Старый 22.05.2007, 13:37   #3  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Регистрация: 19.06.2006
Нет. Таблиц не так много (около 10)
Старый 22.05.2007, 13:44   #4  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Если автоматически раз в сутки, то вызывайте вашу выгрузку (отчет, датапорт, xmlпорт, надеюсь что она у вас уже есть) по таймеру, сама выгрузка может выполняться либо на клиенте либо на application сервере (что отожрет одну сессию).

Если php скриптом, то без CFRONTа не обойтись.

Где у вас Mysql? На UNIX машине или на windows?

Если таблиц всего 10, то можно пойти таким путем, добавьте ваши таблицы в "Журнал Измений", потом модифицируйте 423 кодюнит так чтобы он складывал измененные записи в какую то таблицу, а на application сервере периодически или запускайте отчет который будет выгружать ваши записи куда нужно. А там вы их подберете так и чем, как захотите.
Старый 22.05.2007, 13:54   #5  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Регистрация: 19.06.2006
на Windows (я пока просто тестирую процесс, поэтому все на локальной машине делаю)

Я просто совсем в MySQL не секу. Мне вот и интересно какую надо там команду написать, для обращения к навиженовскому ODBC драйверу, так чтобы некоторые таблицы из навижена скопировались в базу mysql ?

Проблема просто еще том, что в навижане у нас очнь урезанная лицензия - мы ваще там практически прогать неможем - поэтому путь: Автоматически навижен выкалвдывает данные через датапорт в текатовый файл, а его потом читает myqsl, не подходит.

Можно конечно все на Access напсать - там можно явно сделать копирование таблиц через навижановскийи MySQLий ODBC драйвера. Но хочется без Access обойтись.
Старый 22.05.2007, 13:59   #6  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Цитата:
на Windows (я пока просто тестирую процесс, поэтому все на локальной машине делаю)
Потом на *nix будет?

Цитата:
Я просто совсем в MySQL не секу. Мне вот и интересно какую надо там команду написать, для обращения к навиженовскому ODBC драйверу, так чтобы некоторые таблицы из навижена скопировались в базу mysql ?
А форматы таблиц у вас полностью идентичные?

Цитата:
Проблема просто еще том, что в навижане у нас очнь урезанная лицензия - мы ваще там практически прогать неможем - поэтому путь: Автоматически навижен выкалвдывает данные через датапорт в текатовый файл, а его потом читает myqsl, не подходит.
Так обратитесь к партнеру который вам внедрял, они это сделают быстро и я думаю с удовольствием =).
Старый 22.05.2007, 14:11   #7  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Кстати дока по 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  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Кстати, если у вас все будет на Windows, можно просто цепляться php скриптом через ODBC к Nav базе и синхронизировать нужные вам таблицы, лицензия на ODBC я думаю у вас есть. Такой вариант устраивает?
Старый 22.05.2007, 16:33   #9  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Регистрация: 19.06.2006
Цитата:
Сообщение от Forward Посмотреть сообщение
Кстати дока по ODBC лежит на диске с Nav, зовется w1w1nodbc.pdf, посмотрите, там много всего интересного...
Скопировать таблицы какой то командой из командной стоки не получится, так как:
Поэтому без программирования либо на передающей стороне, либо на принимающей никак не обойтись...
Ну вот яи хочу понять, что надо на принимающей стороне прогать =)

Цитата:
Сообщение от Forward Посмотреть сообщение
Кстати, если у вас все будет на Windows, можно просто цепляться php скриптом через ODBC к Nav базе и синхронизировать нужные вам таблицы, лицензия на ODBC я думаю у вас есть. Такой вариант устраивает?
Ну в итоге и надо сделать PHP интерфесы работы с этими данными. Так что через них и обновлять наверно будем
Старый 22.05.2007, 16:36   #10  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Регистрация: 19.06.2006
Цитата:
Сообщение от Forward Посмотреть сообщение
Кстати, если у вас все будет на Windows, можно просто цепляться php скриптом через ODBC к Nav базе и синхронизировать нужные вам таблицы, лицензия на ODBC я думаю у вас есть. Такой вариант устраивает?
Ну в итоге как раз и надо PHP интерфесы работы с этими данными. Так что и обновлять через PHP вручную можно будет.

Но я не понимаю как из MySQL (или из PHP) зацепиться за DNS, на которм лежит N/ODBC
Старый 22.05.2007, 16:51   #11  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Регистрация: 21.05.2007
Ставите 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()));
?>
Только вообще то, это очень небезопасный вариант.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:29.