Такой перебор плох тем, что для перебора нужно осуществить выборку из 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()));
}
}