Показать сообщение отдельно
Старый 18.01.2010, 12:26   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Работающий у меня пример.

X++:
static server void test_ADOConnection()
{
    CCADOConnection         adoConnection;
    CCADOCommand            adoCommand;
    str                     strCommand;
    FileFolder_RU       fileFolder_RU;

    CCADOFields             adoFields;
    CCADOField              adoField_0,
                            adoField_1,
                            adoField_2,
                            adoField_3,
                            adoField_4;
    ;

    // Путь доступа к директории, где находится DBF
    fileFolder_RU = "C:\\MyFolder";

    // Подключение к DBF
    adoConnection       = new CCADOConnection();
    adoConnection.connectionString(strFmt("Driver={Microsoft dBase Driver (*.dbf)};DriverID=277;Dbq=%1;",fileFolder_RU));
    adoConnection.open();
    adoCommand          = new CCADOCommand();
    adoCommand.activeConnection(adoConnection);

    adoCommand.commandType(1);    // Возможно, этой настройки не хватает?

    // Выполнение команды
    strCommand = "Select * from MyTable.dbf";

    adoCommand.commandText(strCommand);
    adoRecordSet     = adoCommand.execute();
    adoFields        = adoRecordSet.fields();
    adoField_0     = adoFields.itemIdx(0);
    adoField_1     = adoFields.itemIdx(1);
    adoField_2    = adoFields.itemIdx(2);
    adoField_3 = adoFields.itemIdx(3);
    adoField_4    = adoFields.itemIdx(4);

    // Просмотр результата
    while (! adoRecordSet.EOF())
    {
        print   " adoField_0=",adoField_0.value();
        print   " adoField_1=",adoField_1.value();
        print   " adoField_2=",adoField_2.value();
        print   " adoField_3=",adoField_3.value();
        print   " adoField_4=",adoField_4.value();

        adoRecordSet.moveNext();
    }

    pause;
    adoConnection.close();
    return;
}
Если код работал, а потом перестал. И при этом сам код не менялся, то, возможно, произошло внешнее (по отношению к Axapta) изменение. Либо был изменен (удален) драйвер ADO/ODBC, либо была изменена какая-либо политика безопасности