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

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

?? ogrocidatasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/****************************************************************************** * $Id: ogrocidatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  Oracle Spatial Driver * Purpose:  Implementation of the OGROCIDataSource class. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2002, Frank Warmerdam <warmerdam@pobox.com> * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************/#include "ogr_oci.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrocidatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");static int anEPSGOracleMapping[] = {    /* Oracle SRID, EPSG GCS/PCS Code */        8192, 4326, // WGS84    8306, 4322, // WGS72    8267, 4269, // NAD83    8274, 4277, // OSGB 36         // NAD27 isn't easily mapped since there are many Oracle NAD27 codes.    81989, 27700, // UK National Grid    0, 0 // end marker};/************************************************************************//*                          OGROCIDataSource()                          *//************************************************************************/OGROCIDataSource::OGROCIDataSource(){    pszName = NULL;    pszDBName = NULL;    papoLayers = NULL;    nLayers = 0;    poSession = NULL;    papoSRS = NULL;    panSRID = NULL;    nKnownSRID = 0;}/************************************************************************//*                         ~OGROCIDataSource()                          *//************************************************************************/OGROCIDataSource::~OGROCIDataSource(){    int         i;    CPLFree( pszName );    CPLFree( pszDBName );    for( i = 0; i < nLayers; i++ )        delete papoLayers[i];        CPLFree( papoLayers );    for( i = 0; i < nKnownSRID; i++ )    {        papoSRS[i]->Release();    }    CPLFree( papoSRS );    CPLFree( panSRID );    if( poSession != NULL )        delete poSession;}/************************************************************************//*                                Open()                                *//************************************************************************/int OGROCIDataSource::Open( const char * pszNewName, int bUpdate,                            int bTestOpen ){    CPLAssert( nLayers == 0 && poSession == NULL );/* -------------------------------------------------------------------- *//*      Verify postgresql prefix.                                       *//* -------------------------------------------------------------------- */    if( !EQUALN(pszNewName,"OCI:",3) )    {        if( !bTestOpen )            CPLError( CE_Failure, CPLE_AppDefined,                       "%s does not conform to Oracle OCI driver naming convention,"                      " OCI:*\n" );        return FALSE;    }/* -------------------------------------------------------------------- *//*      Try to parse out name, password and database name.              *//* -------------------------------------------------------------------- */    char *pszUserid;    const char *pszPassword = "";    const char *pszDatabase = "";    char **papszTableList = NULL;    int   i;    pszUserid = CPLStrdup( pszNewName + 4 );    // Is there a table list?     for( i = strlen(pszUserid)-1; i > 1; i-- )    {        if( pszUserid[i] == ':' )        {            papszTableList = CSLTokenizeStringComplex( pszUserid+i+1, ",",                                                       TRUE, FALSE );            pszUserid[i] = '\0';            break;        }        if( pszUserid[i] == '/' || pszUserid[i] == '@' )            break;    }    for( i = 0;          pszUserid[i] != '\0' && pszUserid[i] != '/' && pszUserid[i] != '@';         i++ ) {}    if( pszUserid[i] == '/' )    {        pszUserid[i++] = '\0';        pszPassword = pszUserid + i;        for( ; pszUserid[i] != '\0' && pszUserid[i] != '@'; i++ ) {}    }    if( pszUserid[i] == '@' )    {        pszUserid[i++] = '\0';        pszDatabase = pszUserid + i;    }/* -------------------------------------------------------------------- *//*      Try to establish connection.                                    *//* -------------------------------------------------------------------- */    CPLDebug( "OCI", "Userid=%s, Password=%s, Database=%s",               pszUserid, pszPassword, pszDatabase );    poSession = OGRGetOCISession( pszUserid, pszPassword, pszDatabase );    if( poSession == NULL )        return FALSE;    pszName = CPLStrdup( pszNewName );        bDSUpdate = bUpdate;/* -------------------------------------------------------------------- *//*      If no list of target tables was provided, collect a list of     *//*      spatial tables now.                                             *//* -------------------------------------------------------------------- */    if( papszTableList == NULL )    {        OGROCIStatement oGetTables( poSession );        if( oGetTables.Execute(             "SELECT TABLE_NAME, OWNER FROM ALL_SDO_GEOM_METADATA" )             == CE_None )        {            char **papszRow;            while( (papszRow = oGetTables.SimpleFetchRow()) != NULL )            {                char szFullTableName[100];                if( EQUAL(papszRow[1],pszUserid) )                    strcpy( szFullTableName, papszRow[0] );                else                    sprintf( szFullTableName, "%s.%s",                              papszRow[1], papszRow[0] );                if( CSLFindString( papszTableList, szFullTableName ) == -1 )                    papszTableList = CSLAddString( papszTableList,                                                    szFullTableName );            }        }    }    CPLFree( pszUserid );/* -------------------------------------------------------------------- *//*      Open all the selected tables or views.                          *//* -------------------------------------------------------------------- */    for( i = 0; papszTableList != NULL && papszTableList[i] != NULL; i++ )    {        OpenTable( papszTableList[i], -1, bUpdate, FALSE );    }    return TRUE;}/************************************************************************//*                             OpenTable()                              *//************************************************************************/int OGROCIDataSource::OpenTable( const char *pszNewName,                                  int nSRID, int bUpdate, int bTestOpen ){/* -------------------------------------------------------------------- *//*      Create the layer object.                                        *//* -------------------------------------------------------------------- */    OGROCITableLayer    *poLayer;    poLayer = new OGROCITableLayer( this, pszNewName, nSRID,                                     bUpdate, FALSE );    if( !poLayer->IsValid() )    {        delete poLayer;        return FALSE;    }/* -------------------------------------------------------------------- *//*      Add layer to data source layer list.                            *//* -------------------------------------------------------------------- */    papoLayers = (OGROCILayer **)        CPLRealloc( papoLayers,  sizeof(OGROCILayer *) * (nLayers+1) );    papoLayers[nLayers++] = poLayer;    return TRUE;}/************************************************************************//*                           ValidateLayer()                            *//************************************************************************/void OGROCIDataSource::ValidateLayer( const char *pszLayerName ){    int iLayer;/* -------------------------------------------------------------------- *//*      Try to find layer.                                              *//* -------------------------------------------------------------------- */    for( iLayer = 0; iLayer < nLayers; iLayer++ )    {        if( EQUAL(pszLayerName,papoLayers[iLayer]->GetLayerDefn()->GetName()) )            break;    }    if( iLayer == nLayers )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "ValidateLayer(): %s is not a recognised layer.",                   pszLayerName );        return;    }/* -------------------------------------------------------------------- *//*      Verify we have an FID and geometry column for this table.       *//* -------------------------------------------------------------------- */    OGROCITableLayer *poLayer = (OGROCITableLayer *) papoLayers[iLayer];    if( strlen(poLayer->GetFIDColumn()) == 0         || strlen(poLayer->GetGeometryColumn()) == 0 )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "ValidateLayer(): %s lacks a geometry or fid column.",                   pszLayerName );        return;    }/* -------------------------------------------------------------------- */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院免费观看| 偷拍一区二区三区| 欧美大胆一级视频| 在线免费亚洲电影| 国产乱码精品一品二品| 亚洲综合av网| 国产精品国产三级国产aⅴ入口| 666欧美在线视频| av电影一区二区| 国产一区二区毛片| 香蕉久久一区二区不卡无毒影院| 国产精品伦理一区二区| 26uuu亚洲综合色| 欧美久久一二三四区| 99久久久无码国产精品| 国产裸体歌舞团一区二区| 天天影视色香欲综合网老头| 亚洲免费在线电影| 国产精品热久久久久夜色精品三区| 91精品国产欧美一区二区成人 | 日本免费在线视频不卡一不卡二| 欧美国产日韩亚洲一区| 精品福利av导航| 88在线观看91蜜桃国自产| 在线观看一区二区视频| 色综合久久99| 色综合激情五月| 91亚洲精品久久久蜜桃网站 | 天天亚洲美女在线视频| 亚洲精品视频在线观看免费| 国产精品另类一区| 国产精品五月天| 中文字幕二三区不卡| 久久久久久久久久电影| 日韩免费观看高清完整版 | 在线看不卡av| 91看片淫黄大片一级在线观看| 国产乱一区二区| 国产成人精品三级| 不卡的av电影在线观看| 99久久精品情趣| 91美女福利视频| 91久久精品网| 欧美福利一区二区| 91精品久久久久久久91蜜桃| 欧美一级高清大全免费观看| 日韩一二三区不卡| 精品国产免费视频| 久久久久久9999| 亚洲国产高清在线| 亚洲天堂福利av| 亚洲男人电影天堂| 亚洲国产综合91精品麻豆| 亚洲一区在线视频观看| 午夜在线电影亚洲一区| 免费观看久久久4p| 国产毛片精品视频| av一区二区三区| 欧美日韩激情一区二区三区| 欧美高清www午色夜在线视频| 日韩一级大片在线| 日本一区二区三区久久久久久久久不| 国产精品视频一二| 一区二区三区四区乱视频| 亚洲一级二级三级| 久久91精品国产91久久小草| 国产成人精品在线看| 91丨porny丨中文| 在线不卡的av| 精品国产一区二区三区久久久蜜月| 久久久www成人免费毛片麻豆| 国产精品乱子久久久久| 亚洲成av人综合在线观看| 久久精品国产在热久久| 成人免费视频视频| 欧美福利视频导航| 国产三区在线成人av| 一区二区在线观看不卡| 美女在线视频一区| 91丨九色丨国产丨porny| 日韩午夜中文字幕| 国产精品久久福利| 免费人成在线不卡| 色综合一区二区三区| 91精品福利在线一区二区三区| 午夜精品在线视频一区| 国产综合久久久久久久久久久久 | 欧美久久久久免费| 国产欧美日韩综合精品一区二区| 亚洲一二三区视频在线观看| 捆绑调教美女网站视频一区| 99久久国产综合精品女不卡| 日韩欧美综合在线| 亚洲激情av在线| 国产一区二区在线观看视频| 在线免费观看视频一区| 久久久久久日产精品| 亚洲r级在线视频| av亚洲精华国产精华精华| 欧美岛国在线观看| 亚洲高清免费视频| 色综合亚洲欧洲| 久久精品人人爽人人爽| 日本视频中文字幕一区二区三区| 91最新地址在线播放| 久久久久久久综合日本| 日韩和的一区二区| 欧美在线观看视频一区二区| 国产日韩欧美激情| 久久精品国产澳门| 欧美日韩不卡视频| 伊人一区二区三区| 99综合影院在线| 国产三区在线成人av| 久久超碰97中文字幕| 欧美一区二区网站| 亚洲高清不卡在线| 欧美中文字幕亚洲一区二区va在线| 日本一区二区电影| 福利一区福利二区| 精品国产91亚洲一区二区三区婷婷| 天堂在线一区二区| 欧美三级三级三级| 亚洲主播在线观看| 欧美亚洲禁片免费| 亚洲美女电影在线| 色综合久久六月婷婷中文字幕| 国产精品黄色在线观看| 成人污视频在线观看| 中文字幕欧美日韩一区| 国产91精品精华液一区二区三区| 欧美mv日韩mv国产| 精品写真视频在线观看| 欧美va亚洲va| 国产成人久久精品77777最新版本| 久久久无码精品亚洲日韩按摩| 狠狠狠色丁香婷婷综合久久五月| 日韩一级免费一区| 久久aⅴ国产欧美74aaa| 精品人在线二区三区| 韩国女主播一区| 久久久777精品电影网影网| 国产成人av影院| 综合电影一区二区三区| 色久综合一二码| 亚洲高清视频中文字幕| 91精品国产91久久久久久一区二区| 日本v片在线高清不卡在线观看| 日韩一级二级三级| 国产成人精品一区二| 亚洲欧洲av另类| 欧美日韩在线电影| 奇米影视在线99精品| 精品国产百合女同互慰| 成人av集中营| 亚洲夂夂婷婷色拍ww47| 欧美疯狂做受xxxx富婆| 韩国精品在线观看| 中文字幕亚洲在| 7777精品伊人久久久大香线蕉最新版| 日韩国产欧美在线观看| 精品av久久707| 99久久国产免费看| 日韩国产成人精品| 欧美国产激情二区三区| 精品视频在线免费看| 青青草国产成人99久久| 国产精品视频一区二区三区不卡| 在线一区二区三区四区| 国产成人精品影视| 亚洲国产另类精品专区| 欧美精品一区二区三区四区| 不卡视频免费播放| 五月天国产精品| 国产欧美一区二区精品秋霞影院| 日本精品视频一区二区| 久久国产成人午夜av影院| 国产精品美女久久久久av爽李琼| 欧美日韩黄色影视| 成人免费毛片片v| 日本视频一区二区| 中文字幕在线不卡| 日韩三级精品电影久久久 | 成av人片一区二区| 日本系列欧美系列| 亚洲免费在线播放| 久久嫩草精品久久久久| 欧美三电影在线| 成人黄色av电影| 免费在线观看日韩欧美| 亚洲少妇屁股交4| 亚洲精品在线网站| 欧美色爱综合网| 成人av第一页| 久国产精品韩国三级视频| 亚洲一区二区欧美日韩| 国产精品入口麻豆原神| 91精品国产色综合久久不卡电影| 99国产欧美久久久精品| 国产专区欧美精品|