30.11.2006, 13:48 | #1 |
Участник
|
Импорт данных из старого Navision - Как сделать правильно?
Добрый день!
Прошу не ругать, если подобное уже обсуждалось, но поиском по всем конфам я не нашел. Но пришлось столкнуться с Navision вплотную и опыта никакого нет. Ситуация такова - есть Navision Financials весьма старой версии. Лицензии на C/FRONT нет. Версия C/ODBC - 2.10.0002 Нужно сделать импорт данных из таблички "G/L Entry" в таблицу на MSSQL сервере. Поскольку я с Navision никогда не работал решил попробовать сделать это такими способами: 1. Прямое подключение к таблице через ADO. Т.е. в приложение есть объекты ADOConnection, ADOTable. Результат - нулевой, т.е. таблица пустая. 2. Использование ADOQuery. Работает только в том случае, если в запросе не используются поля с суммами (Amount, Quantity, VAT_Amount, Debit_Amount и другие подобные). Если хотя бы одно из этих полей присутствует, то запрос не содержит ни одной записи. 3. Linked Server в MSSQL. SELECT ..... FROM OPENQUERY(NAV, 'SELECT * FROM G_L_Entry') Такая же ерунда, как с использованием ADOQuery - работает только если в списке полей отсутствуют суммы. При попытке включить скажем поле Amount - ошибка Server: Msg 7341, Level 16, State 2, Line 1 Could not get the current row value of column '[T1].Amount' from the OLE DB provider 'MSDASQL'. Could not convert the data value due to reasons other than sign mismatch or overflow. [OLE/DB provider returned message: Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.] OLE DB error trace [OLE/DB Provider 'MSDASQL' IRowset::GetData returned 0x80040e21: Data status returned from the provider: [COLUMN_NAME=Amount STATUS=DBSTATUS_E_CANTCONVERTVALUE]]. И как бы я не пытался преобразовывать поле Amount - все равно ошибка. Уверен, что выход есть и он простой, но уже третий день с утра до вечера бьюсь над этой задачей и не получается. Falc0nman Москва |
|