25.11.2009, 13:51 | #1 |
Участник
|
Чтение таблиц Paradox в AX4.0
Если кто имел дело, подскажите почему не читается Paradox таблица в АХ. Обращаюсь через ODBC connection к соответствующему DSN определенному на
Microsoft Paradox Driver и уже на этапе ResultSet.next() получаю на одних таблицах: База данных SQL обнаружила ошибку. Описание ошибки SQL: [Microsoft][Драйвер ODBC Paradox] Внешняя таблица не имеет предполагаемый формат. Оператор SQL: SELECT name FROM users а на других: База данных SQL обнаружила ошибку. Описание ошибки SQL: [Microsoft][Драйвер ODBC Paradox] Объект 'PRODTable_Y' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути. Оператор SQL: SELECT CollectRefProdId_Y FROM PRODTable_Y Обе таблицы и USERS и ProdTable_Y в директории присутствуют. |
|
26.11.2009, 10:04 | #2 |
Участник
|
|
|
26.11.2009, 10:48 | #3 |
Модератор
|
Правильно задавайте вопросы.
А не из Аксапты? Попробуйте из другой систему подцепиться - что говорит? Просто то, что вы описали, к DAX никакого отношния не имеет. |
|
26.11.2009, 14:24 | #4 |
Участник
|
Цитата:
таблицы АХ. Я привел только info из job AX 4.0. Насчет попробовать работу с этим ОДБС драйвером из других систем-попробую, хотя сейчас не знаю пока как. Но из java точно работало, хотя были проблемы с русскими буквами, которые исчезли при замене ОДБС драйвера на native для JAVA. Да и из АХ все работало у разработчика, воспроизвести пока не могу у себя. |
|
26.11.2009, 15:20 | #5 |
Пенсионер
|
Например из Ёкселя или Аксцесса, да еще много откуда..
Вы лучше приведите полностью параметры коннекта!
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ Последний раз редактировалось blokva; 26.11.2009 в 15:22. |
|
26.11.2009, 16:04 | #6 |
Участник
|
Цитата:
static void pwp1026_pdx(Args _args) { ODBCCOnnection odbc; Statement statement; str queryText; ResultSet res; LoginProperty lp; ; int i; PDXSQLCommand cmd; ; lp = new LoginProperty(); lp.setDSN(strfmt("PARADB_03")); info (strfmt("DSN = %1 ", lp.getDSN())); odbc = new ODBCConnection(lp); statement = odbc.createStatement(); cmd = strfmt("SELECT CollectRefProdId_Y FROM PRODTable_Y "); // одинаково работает и с queryTxt = strfmt("SELECT CollectRefProdId_Y FROM PRODTable_Y "); if (odbc) { info (strfmt("cmd=%1",cmd)); res = statement.executeQuery(cmd); i = 0; while(res.next()) // наэтом операторе и выдает сообщения привед.сначала темы { info ("i:"+int2str(i)); info(strfmt("%1 %2", res.getString(1))); i++; if (i > 10) break; } } } |
|
27.11.2009, 11:35 | #7 |
Пенсионер
|
Я посмотрел, у меня установлено 3 драйвера для парадокса, а если попробовать разные?
Еще вариант, сформировать connect непосредсвенно из Аксапты, у меня как то были заморочки с коннектом при использовании DSN, полечил указанием параметров коннекта прямо в аксе.
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
27.11.2009, 11:56 | #8 |
Участник
|
Вот так работает. Только BDE установите там, откуда запрашиваете данные.
X++: static void Job318(Args _args) { #CCADO #DEFINE.TIMEOUT (5) int id; str sql = 'SELECT max(pLogData.Num) FROM pLogData'; FilePath basePath = @'C:\orion03\baseproba'; TempStr connectionString; CCADOConnection ccADOConnection; CCADORecordSet ccADORecordSet; ; connectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + basePath + ';Extended Properties=Paradox 5.x;'; ccADOConnection = new CCADOConnection(); ccADOConnection.open(connectionString); ccADOConnection.CommandTimeout(#TIMEOUT); if (ccADOConnection) { ccADORecordSet = new ccADORecordSet(); ccADORecordSet.cursorLocation(#adUseServer); try { ccADORecordSet.open( sql, ccADOConnection, #adOpenStatic, #adLockReadOnly, #adCmdText); id = ccADORecordSet.fields().itemIdx(0).value(); info(strfmt('%1', id)); } catch (exception::Error) { throw error("Невозможно прочитать файл внешней базы данных"); } } else { throw error('Нет соединения'); } } |
|
27.11.2009, 13:48 | #9 |
Участник
|
Цитата:
Microsoft Access Paradox driver, которого на моей машине не было. Наверное это драйвер Paradox для Access. C этим драйвером все сразу получилось. Спасибо всем, принявшим участие. Гранаты у него не той системы..... Цитата:
Сообщение от LMA
Вот так работает. Только BDE установите там, откуда запрашиваете данные.
|
|
04.12.2009, 08:45 | #10 |
Участник
|
|
|