亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogrdatasource.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                                               pszNewName, papszOptions );
}

/************************************************************************/
/*                            DeleteLayer()                             */
/************************************************************************/

OGRErr OGRDataSource::DeleteLayer( int iLayer )

{
    (void) iLayer;
    CPLError( CE_Failure, CPLE_NotSupported,
              "DeleteLayer() not supported by this data source." );
              
    return OGRERR_UNSUPPORTED_OPERATION;
}

/************************************************************************/
/*                         OGR_DS_DeleteLayer()                         */
/************************************************************************/

OGRErr OGR_DS_DeleteLayer( OGRDataSourceH hDS, int iLayer )

{
    return ((OGRDataSource *) hDS)->DeleteLayer( iLayer );
}

/************************************************************************/
/*                           GetLayerByName()                           */
/************************************************************************/

OGRLayer *OGRDataSource::GetLayerByName( const char *pszName )

{
    if ( ! pszName )
        return NULL;

    int  i;

    /* first a case sensitive check */
    for( i = 0; i < GetLayerCount(); i++ )
    {
        OGRLayer *poLayer = GetLayer(i);

        if( strcmp( pszName, poLayer->GetLayerDefn()->GetName() ) == 0 )
            return poLayer;
    }

    /* then case insensitive */
    for( i = 0; i < GetLayerCount(); i++ )
    {
        OGRLayer *poLayer = GetLayer(i);

        if( EQUAL( pszName, poLayer->GetLayerDefn()->GetName() ) )
            return poLayer;
    }

    return NULL;
}

/************************************************************************/
/*                       OGR_DS_GetLayerByName()                        */
/************************************************************************/

OGRLayerH OGR_DS_GetLayerByName( OGRDataSourceH hDS, const char *pszName )

{
    return (OGRLayerH) ((OGRDataSource *) hDS)->GetLayerByName( pszName );
}

/************************************************************************/
/*                       ProcessSQLCreateIndex()                        */
/*                                                                      */
/*      The correct syntax for creating an index in our dialect of      */
/*      SQL is:                                                         */
/*                                                                      */
/*        CREATE INDEX ON <layername> USING <columnname>                */
/************************************************************************/

OGRErr OGRDataSource::ProcessSQLCreateIndex( const char *pszSQLCommand )

{
    char **papszTokens = CSLTokenizeString( pszSQLCommand );

/* -------------------------------------------------------------------- */
/*      Do some general syntax checking.                                */
/* -------------------------------------------------------------------- */
    if( CSLCount(papszTokens) != 6 
        || !EQUAL(papszTokens[0],"CREATE")
        || !EQUAL(papszTokens[1],"INDEX")
        || !EQUAL(papszTokens[2],"ON")
        || !EQUAL(papszTokens[4],"USING") )
    {
        CSLDestroy( papszTokens );
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "Syntax error in CREATE INDEX command.\n"
                  "Was '%s'\n"
                  "Should be of form 'CREATE INDEX ON <table> USING <field>'",
                  pszSQLCommand );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Find the named layer.                                           */
/* -------------------------------------------------------------------- */
    int  i;
    OGRLayer *poLayer = NULL;

    for( i = 0; i < GetLayerCount(); i++ )
    {
        poLayer = GetLayer(i);
        
        if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) )
            break;
    }

    if( i >= GetLayerCount() )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "CREATE INDEX ON failed, no such layer as `%s'.",
                  papszTokens[3] );
        CSLDestroy( papszTokens );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Does this layer even support attribute indexes?                 */
/* -------------------------------------------------------------------- */
    if( poLayer->GetIndex() == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "CREATE INDEX ON not supported by this driver." );
        CSLDestroy( papszTokens );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Find the named field.                                           */
/* -------------------------------------------------------------------- */
    for( i = 0; i < poLayer->GetLayerDefn()->GetFieldCount(); i++ )
    {
        if( EQUAL(papszTokens[5],
                  poLayer->GetLayerDefn()->GetFieldDefn(i)->GetNameRef()) )
            break;
    }

    CSLDestroy( papszTokens );

    if( i >= poLayer->GetLayerDefn()->GetFieldCount() )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "`%s' failed, field not found.",
                  pszSQLCommand );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Attempt to create the index.                                    */
/* -------------------------------------------------------------------- */
    OGRErr eErr;

    eErr = poLayer->GetIndex()->CreateIndex( i );
    if( eErr == OGRERR_NONE )
        eErr = poLayer->GetIndex()->IndexAllFeatures( i );

    return eErr;
}

/************************************************************************/
/*                        ProcessSQLDropIndex()                         */
/*                                                                      */
/*      The correct syntax for droping one or more indexes in           */
/*      the OGR SQL dialect is:                                         */
/*                                                                      */
/*          DROP INDEX ON <layername> [USING <columnname>]              */
/************************************************************************/

OGRErr OGRDataSource::ProcessSQLDropIndex( const char *pszSQLCommand )

{
    char **papszTokens = CSLTokenizeString( pszSQLCommand );

/* -------------------------------------------------------------------- */
/*      Do some general syntax checking.                                */
/* -------------------------------------------------------------------- */
    if( (CSLCount(papszTokens) != 4 && CSLCount(papszTokens) != 6)
        || !EQUAL(papszTokens[0],"DROP")
        || !EQUAL(papszTokens[1],"INDEX")
        || !EQUAL(papszTokens[2],"ON") 
        || (CSLCount(papszTokens) == 6 && !EQUAL(papszTokens[4],"USING")) )
    {
        CSLDestroy( papszTokens );
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "Syntax error in DROP INDEX command.\n"
                  "Was '%s'\n"
                  "Should be of form 'DROP INDEX ON <table> [USING <field>]'",
                  pszSQLCommand );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Find the named layer.                                           */
/* -------------------------------------------------------------------- */
    int  i;
    OGRLayer *poLayer=NULL;

    for( i = 0; i < GetLayerCount(); i++ )
    {
        poLayer = GetLayer(i);
        
        if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) )
            break;
    }

    if( i >= GetLayerCount() )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "CREATE INDEX ON failed, no such layer as `%s'.",
                  papszTokens[3] );
        CSLDestroy( papszTokens );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Does this layer even support attribute indexes?                 */
/* -------------------------------------------------------------------- */
    if( poLayer->GetIndex() == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "Indexes not supported by this driver." );
        CSLDestroy( papszTokens );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      If we weren't given a field name, drop all indexes.             */
/* -------------------------------------------------------------------- */
    OGRErr eErr;

    if( CSLCount(papszTokens) == 4 )
    {
        for( i = 0; i < poLayer->GetLayerDefn()->GetFieldCount(); i++ )
        {
            OGRAttrIndex *poAttrIndex;

            poAttrIndex = poLayer->GetIndex()->GetFieldIndex(i);
            if( poAttrIndex != NULL )
            {
                eErr = poLayer->GetIndex()->DropIndex( i );
                if( eErr != OGRERR_NONE )
                    return eErr;
            }
        }

        CSLDestroy(papszTokens);
        return OGRERR_NONE;
    }

/* -------------------------------------------------------------------- */
/*      Find the named field.                                           */
/* -------------------------------------------------------------------- */
    for( i = 0; i < poLayer->GetLayerDefn()->GetFieldCount(); i++ )
    {
        if( EQUAL(papszTokens[5],
                  poLayer->GetLayerDefn()->GetFieldDefn(i)->GetNameRef()) )
            break;
    }

    CSLDestroy( papszTokens );

    if( i >= poLayer->GetLayerDefn()->GetFieldCount() )
    {
        CPLError( CE_Failure, CPLE_AppDefined, 
                  "`%s' failed, field not found.",
                  pszSQLCommand );
        return OGRERR_FAILURE;
    }

/* -------------------------------------------------------------------- */
/*      Attempt to drop the index.                                      */
/* -------------------------------------------------------------------- */
    eErr = poLayer->GetIndex()->DropIndex( i );

    return eErr;
}

/************************************************************************/
/*                             ExecuteSQL()                             */
/************************************************************************/

OGRLayer * OGRDataSource::ExecuteSQL( const char *pszStatement,
                                      OGRGeometry *poSpatialFilter,
                                      const char *pszDialect )

{
    const char *pszError;
    swq_select *psSelectInfo = NULL;

    (void) pszDialect;

/* -------------------------------------------------------------------- */
/*      Handle CREATE INDEX statements specially.                       */
/* -------------------------------------------------------------------- */
    if( EQUALN(pszStatement,"CREATE INDEX",12) )
    {
        ProcessSQLCreateIndex( pszStatement );
        return NULL;
    }
    
/* -------------------------------------------------------------------- */
/*      Handle DROP INDEX statements specially.                         */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里都是精品| 日韩av电影天堂| 国产精品水嫩水嫩| 337p日本欧洲亚洲大胆色噜噜| 欧美一区二区女人| 日韩午夜在线影院| 欧美大肚乱孕交hd孕妇| 日韩精品一区二区在线| 久久婷婷国产综合精品青草| 久久众筹精品私拍模特| 久久久精品国产免费观看同学| 久久久久9999亚洲精品| 国产欧美日韩在线视频| 综合分类小说区另类春色亚洲小说欧美 | 成人av电影在线播放| a级高清视频欧美日韩| 91麻豆视频网站| 精品视频免费在线| 日韩一区和二区| 日本一区二区三区国色天香 | 日韩欧美成人激情| 久久久一区二区三区捆绑**| 国产精品蜜臀av| 一区二区日韩av| 日韩精品高清不卡| 国产精品91一区二区| 91在线porny国产在线看| 欧美性大战久久| 精品国精品自拍自在线| 中文在线资源观看网站视频免费不卡 | 日韩女优av电影| 中文字幕精品综合| 亚洲综合小说图片| 久久成人免费电影| jlzzjlzz亚洲日本少妇| 欧美日韩综合一区| 26uuu国产日韩综合| 亚洲色图欧美偷拍| 日本亚洲天堂网| 成人高清免费在线播放| 欧美午夜一区二区三区 | 天天综合日日夜夜精品| 国产自产v一区二区三区c| 99久久99久久精品国产片果冻 | 亚洲女性喷水在线观看一区| 免费高清视频精品| av网站一区二区三区| 91 com成人网| 亚洲欧洲制服丝袜| 国产欧美一区二区精品忘忧草| 在线观看亚洲精品视频| 国产调教视频一区| 亚洲一二三级电影| 国v精品久久久网| 欧美美女bb生活片| 欧美一卡在线观看| 国产精品短视频| 另类小说欧美激情| 99在线视频精品| 精品国产乱码久久久久久浪潮| 亚洲精品免费播放| 国产一区二区三区高清播放| 在线观看一区日韩| 国产精品国产自产拍高清av| 青娱乐精品视频| 色狠狠综合天天综合综合| www国产亚洲精品久久麻豆| 亚洲h在线观看| 99re6这里只有精品视频在线观看| 2020国产精品久久精品美国| 亚洲v中文字幕| 色天使久久综合网天天| 久久亚洲捆绑美女| 久久成人18免费观看| 欧美日韩一级片网站| 中文字幕制服丝袜成人av| 国产一区在线精品| 精品噜噜噜噜久久久久久久久试看| 亚洲午夜激情av| 一本在线高清不卡dvd| 中文字幕精品三区| 国产高清久久久久| 久久综合一区二区| 日本免费新一区视频| 欧美日韩一区二区不卡| 一区二区三区在线视频观看| 白白色 亚洲乱淫| 国产精品青草久久| 懂色av一区二区在线播放| 欧美精品一区二| 国产麻豆视频精品| 精品日本一线二线三线不卡| 免费看欧美女人艹b| 日韩一级欧美一级| 日本色综合中文字幕| 欧美精品 国产精品| 亚洲一区二区三区爽爽爽爽爽| 91麻豆精品秘密| 亚洲美女视频在线观看| 色偷偷久久人人79超碰人人澡| 最新日韩av在线| 99精品黄色片免费大全| 亚洲乱码中文字幕综合| 91福利视频在线| 一级女性全黄久久生活片免费| 欧美自拍偷拍一区| 亚洲成人你懂的| 欧美日韩国产高清一区二区三区| 亚洲高清免费在线| 日韩一区二区三| 国产曰批免费观看久久久| 久久精品日产第一区二区三区高清版| 国产精品一区二区在线看| 久久久久久久网| 成年人国产精品| 一区二区激情视频| 欧美精品九九99久久| 久草这里只有精品视频| 国产亚洲成年网址在线观看| 福利一区二区在线观看| 亚洲视频中文字幕| 欧美年轻男男videosbes| 久久99国产精品尤物| 日本一区二区三区dvd视频在线 | 蜜臀av性久久久久蜜臀av麻豆| 欧美高清视频一二三区| 老汉av免费一区二区三区 | 精品一区二区三区在线观看 | 久久久噜噜噜久久中文字幕色伊伊| 久久疯狂做爰流白浆xx| 久久九九国产精品| 91在线云播放| 石原莉奈在线亚洲三区| 久久久久9999亚洲精品| 色av成人天堂桃色av| 日本最新不卡在线| 久久一区二区三区四区| 99vv1com这只有精品| 天天综合网天天综合色| 国产婷婷一区二区| 色88888久久久久久影院按摩| 午夜不卡在线视频| 国产女人18水真多18精品一级做| 色94色欧美sute亚洲线路二| 六月婷婷色综合| 亚洲天堂免费在线观看视频| 日韩一级大片在线观看| 成人国产精品免费| 青青草成人在线观看| 国产精品久久毛片a| 欧美日韩一区二区在线观看| 国产乱国产乱300精品| 亚洲高清视频在线| 国产精品国产三级国产普通话99| 制服丝袜亚洲网站| 色婷婷精品大视频在线蜜桃视频| 精品在线免费视频| 一级特黄大欧美久久久| 国产亚洲精品资源在线26u| 欧美伊人久久久久久久久影院| 韩国欧美国产一区| 亚洲成a人片在线观看中文| 国产精品网站一区| 91精品国产aⅴ一区二区| 99精品欧美一区| 久草精品在线观看| 亚洲妇女屁股眼交7| 欧美国产精品一区二区三区| 欧美福利电影网| 91麻豆成人久久精品二区三区| 国产一区二区女| 婷婷激情综合网| 亚洲精品国产品国语在线app| 久久精品欧美一区二区三区不卡 | 亚洲精品在线网站| 欧美日韩国产另类一区| thepron国产精品| 国产伦精品一区二区三区视频青涩 | 奇米综合一区二区三区精品视频| 亚洲视频每日更新| 国产欧美日韩久久| 日韩欧美在线观看一区二区三区| 色94色欧美sute亚洲13| 成人黄页在线观看| 韩国视频一区二区| 六月丁香综合在线视频| 日韩精品电影在线| 亚洲成人免费电影| 亚洲一区二区三区四区的| 亚洲视频一区二区免费在线观看| 久久久久久免费| 欧美精品一区二区在线播放| 日韩三级视频在线观看| 欧美日韩的一区二区| 欧洲一区在线电影| 91精品福利在线| 色噜噜狠狠一区二区三区果冻| jlzzjlzz亚洲日本少妇| 成人18视频日本| 99久久99久久精品国产片果冻|