Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пример AEP - что в ней может не работать? Уходит в Running Query и с концом ... 
:(
    Опции темы
vdarasun
Дата 25.2.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.1.2008

Репутация: нет
Всего: нет



Мои приветствия.
В нижеприведенном примере, как только я раскомментировал код со строки ADSGetIndexHandle() - AEP не отрабатывает, уходит в работу с головой. Что может быть, посмотрИте, посоветуйте.
WBR, Oleg.

Код

/******************************************************************************/
UNSIGNED32 ENTRYPOINT WINAPI StoredProcFilter
(
   UNSIGNED32  ulConnectionID,      // (I) value used to associate a user/connection
                                    //     and can be used to track the state
   ADSHANDLE   hConnection,         // (I) active connection that can be used
                                    //     for all data operations
   UNSIGNED32  *pulNumRowsAffected  // (O) optional output parameter, used to specify
                                    //     how many rows were updated.
)
{
    UNSIGNED32 ulNumRecs;
    UNSIGNED32 ulLen;
    UNSIGNED16 bEof;
    UNSIGNED16 usCount;
    UNSIGNED16 ulLen16;
    UNSIGNED16 i;
    UNSIGNED8  aucTblFrom[200];
    UNSIGNED8  aucTag[ 200 ];
    UNSIGNED8  aucVal1[ 200 ];
    UNSIGNED8  aucVal2[ 200 ];
    UNSIGNED8  aucTblTo[ 200 ];
    UNSIGNED8  aucName[20];
    UNSIGNED8  aucValue[256];
    ADSHANDLE  hDataTable1;
    ADSHANDLE  hDataTable2;
    ADSHANDLE  hIndex;
    ADSHANDLE  hStmt;
    ADSHANDLE  hCursor;

    // Obtain cursor to input table
    ACECHECK( AdsCreateSQLStatement( hConnection, &hStmt ) );
    ACECHECK( AdsExecuteSQLDirect( hStmt, "SELECT * FROM __input", &hCursor ) );

    /*
    * Get each of the input parameter values
    */
    ulLen = sizeof( aucTblFrom );
    ACECHECK( AdsGetString( hCursor, "TblFrom", aucTblFrom, &ulLen, ADS_TRIM ) );

    ulLen = sizeof( aucTag );
    ACECHECK( AdsGetString( hCursor, "Tag", aucTag, &ulLen, ADS_TRIM ) );

    ulLen = sizeof( aucVal1 );
    ACECHECK( AdsGetString( hCursor, "Val1", aucVal1, &ulLen, ADS_TRIM ) );

    ulLen = sizeof( aucVal2 );
    ACECHECK( AdsGetString( hCursor, "Val2", aucVal2, &ulLen, ADS_TRIM ) );

    ulLen = sizeof( aucTblTo );
    ACECHECK( AdsGetString( hCursor, "TblTo", aucTblTo, &ulLen, ADS_TRIM ) );

    ACECHECK( AdsCloseTable( hCursor ) );
    ACECHECK( AdsCloseSQLStatement( hStmt ) );

    // Obtain handles to data tables
    ACECHECK( AdsOpenTable( hConnection,             
        aucTblFrom,              // the name of the table
        NULL,                    // alias are never necessary
        ADS_DEFAULT,             // input tables are always ADT files
        ADS_OEM,                // input tables are always ANSI
        ADS_COMPATIBLE_LOCKING, // with ADT files, this is ignored
        ADS_IGNORERIGHTS,        // from the server, rights checking is unnecessary
        ADS_DEFAULT,             // default options
        &hDataTable1 ) );

    ACECHECK( AdsOpenTable( hConnection,             
        aucTblTo,              // the name of the table
        NULL,                    // alias are never necessary
        ADS_DEFAULT,             // input tables are always ADT files
        ADS_OEM,                // input tables are always ANSI
        ADS_COMPATIBLE_LOCKING, // with ADT files, this is ignored
        ADS_IGNORERIGHTS,        // from the server, rights checking is unnecessary
        ADS_DEFAULT,             // default options
        &hDataTable2 ) );

    ACECHECK( AdsGetIndexHandle( hDataTable1, aucTag, &hIndex ) );
/*    ACECHECK( AdsGetIndexHandleByOrder( hDataTable1, 1, &hIndex ) );*/
    ulLen16 = sizeof( aucVal1 );
    ACECHECK( AdsSetScope( hIndex, ADS_TOP, aucVal1, ulLen16, ADS_STRINGKEY ) );
    ulLen16 = sizeof( aucVal2 );
    ACECHECK( AdsSetScope( hIndex, ADS_BOTTOM, aucVal2, ulLen16, ADS_STRINGKEY ) );

    ACECHECK( AdsGetRecordCount( hIndex, ADS_RESPECTSCOPES, &ulNumRecs ) );
    if ( ulNumRecs ) goto ExitStoredProcedure;

    ACECHECK( AdsCopyTableContents( hDataTable1, hDataTable2, ADS_RESPECTSCOPES ) );
/*    ACECHECK( AdsGetNumFields( hDataTable2, &usCount ) );
    ACECHECK( AdsGotoTop(hIndex) );

/*    do 
    {
        for ( i = 1; i <= usCount; i++ )
        {
            ulLen16 = 20;
            ACECHECK( AdsGetFieldName( hDataTable2, i, aucName, &ulLen16 ) );
            ulLen = 256;
            ACECHECK( AdsGetField( hDataTable1, aucName, aucValue, &ulLen, ADS_NONE ) );
            ACECHECK( AdsSetField( hDataTable2, aucName, aucValue, ulLen ) );
        }
        ACECHECK( AdsSkip( hIndex, 1 ) );
        ACECHECK( AdsAtEOF( hIndex, &bEof ) );
    } while(!bEof);*/
ExitStoredProcedure:
    ACECHECK( AdsCloseTable( hDataTable2 ));
    ACECHECK( AdsClearAllScopes( hIndex ));
    ACECHECK( AdsCloseTable( hDataTable1 ));

    return AE_SUCCESS;

    /*

    // Insert error number and message into __error table
    ACECHECK( AdsCloseTable( hCursor ) );
    ACECHECK( AdsPrepareSQL( hStmt, "INSERT INTO __error ( errno, message ) VALUES ( :error, :message )" ) );
    ACECHECK( AdsSetLong( hStmt, "error", ulRetCode ) );
    ACECHECK( AdsSetString( hStmt, "message", aucMessage, sizeof( aucMessage ) ) );
    ACECHECK( AdsExecuteSQL( hStmt, &hCursor ) );
    ACECHECK( AdsCloseTable( hDataTable ) );
    ACECHECK( AdsCloseTable( hCursor ) );
    ACECHECK( AdsCloseSQLStatement( hStmt ) );


    return ulRetCode;*/
} /* StoredProcFilter */



Все, этот вопрос снят.

Это сообщение отредактировал(а) vdarasun - 24.3.2008, 06:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Advantage Database Server | Следующая тема »


 




[ Время генерации скрипта: 0.0930 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.