AXForum  
Go Back   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

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

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

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

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

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

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

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

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

Quote:
Проблема просто еще том, что в навижане у нас очнь урезанная лицензия - мы ваще там практически прогать неможем - поэтому путь: Автоматически навижен выкалвдывает данные через датапорт в текатовый файл, а его потом читает myqsl, не подходит.
Так обратитесь к партнеру который вам внедрял, они это сделают быстро и я думаю с удовольствием =).
Old 22.05.2007, 14:11   #7  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Join Date: 21.05.2007
Кстати дока по ODBC лежит на диске с Nav, зовется w1w1nodbc.pdf, посмотрите, там много всего интересного...

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

Quote:
ODBC (Open DataBase Connectivity) — это открытый интерфейс доступа к базам данных, разработанный фирмой X/Open.

В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных был необходим нестандартный код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки данных источникам данных различных типов. Этот интерфейс был назван open database connectivity (открытая связь с базами данных).

C помощью ODBC программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками.

MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным функциональным API. Вместо создания простой оболочки функционального API, разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных.
Поэтому без программирования либо на передающей стороне, либо на принимающей никак не обойтись...
Old 22.05.2007, 14:48   #8  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Join Date: 21.05.2007
Кстати, если у вас все будет на Windows, можно просто цепляться php скриптом через ODBC к Nav базе и синхронизировать нужные вам таблицы, лицензия на ODBC я думаю у вас есть. Такой вариант устраивает?
Old 22.05.2007, 16:33   #9  
samonenko is offline
samonenko
Участник
 
21 / 10 (1) +
Join Date: 19.06.2006
Quote:
Originally Posted by Forward View Post
Кстати дока по ODBC лежит на диске с Nav, зовется w1w1nodbc.pdf, посмотрите, там много всего интересного...
Скопировать таблицы какой то командой из командной стоки не получится, так как:
Поэтому без программирования либо на передающей стороне, либо на принимающей никак не обойтись...
Ну вот яи хочу понять, что надо на принимающей стороне прогать =)

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

Но я не понимаю как из MySQL (или из PHP) зацепиться за DNS, на которм лежит N/ODBC
Old 22.05.2007, 16:51   #11  
Forward is offline
Forward
Участник
 
101 / 10 (1) +
Join Date: 21.05.2007
Ставите NODBC, который есть на диске с NAV, на машину откуда будете присоединятся к БД NAV, потом берете вышеуказанный документ =). И настраиваете все как там написано, ничего сложного там нет. Потом пишете на php, примерно так

Code:
<?php
$db_link = odbc_connect($dsn, $username, $password, SQL_CURSOR_FORWARD_ONLY)
	or die('Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
?>
Только вообще то, это очень небезопасный вариант.
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 10:21.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.