![]() |
#5 |
Administrator
|
Такой перебор плох тем, что для перебора нужно осуществить выборку из DBF. Т.е. если вдруг файл очень большой - то может уйти большое время для такого перебора.
Выкладываю (для потомков уже) пример работы с ADOX (слизано с класса CCADOCommandBuild). Код написан для 2009 RU5. В 4.0 можно было еще не пользоваться объектом COM - были нужные классы X++: static void Job1(Args _args) { CCADOConnection ccADOConnection; COM ccADOXCatalog; // Эх, а в 4.0 этот класс был... COM ccADOXTables; // А это семейство было в классе CCADOXCatalog от 4.0 COM ccADOXTable; // Эх, а в 4.0 этот класс тоже был... COM ccADOXColumns; // А это семейство было в классе CCADOXTable от 4.0 CCAdoxColumn ccAdoxColumn; int i; #define.myConnectionString('MyConnectionString') #define.myTableName('myTableName') ; ccADOConnection = new CCADOConnection(); ccADOConnection.open(#myConnectionString); ccADOXCatalog = new COM('ADOX.Catalog'); if (!ccADOXCatalog) { throw error("@SYS32731"); } ccADOXCatalog.activeConnection(ccADOConnection.connection()); ccADOXTables = ccADOXCatalog.tables(); ccADOXTable = ccADOXCatalog.item(#myTableName); ccADOXColumns = ccADOXTable.columns(); for (i = 0; i < ccADOXColumns.count(); i++) { ccAdoxColumn = new CCAdoxColumn(ccADOXColumns.item(i)); info(strfmt("%1 %2", ccAdoxColumn.name(), ccAdoxColumn.xppType())); } }
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: aidsua (2). |
Теги |
ax2009, dbf |
|
|