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

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

?? ogrsdedatasource.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrsdedatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OpenGIS Simple Features Reference Implementation * Purpose:  Implements OGRSDEDataSource class. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2005, 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_sde.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrsdedatasource.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                          OGRSDEDataSource()                           *//************************************************************************/OGRSDEDataSource::OGRSDEDataSource(){    pszName = NULL;    papoLayers = NULL;    nLayers = 0;    hConnection = NULL;}/************************************************************************//*                          ~OGRSDEDataSource()                          *//************************************************************************/OGRSDEDataSource::~OGRSDEDataSource(){    int         i;    CPLFree( pszName );    for( i = 0; i < nLayers; i++ )        delete papoLayers[i];    CPLFree( papoLayers );    if( hConnection != NULL )    {        SE_connection_free( hConnection );    }}/************************************************************************//*                           IssueSDEError()                            *//************************************************************************/void OGRSDEDataSource::IssueSDEError( int nErrorCode,                                       const char *pszFunction ){    char szErrorMsg[SE_MAX_MESSAGE_LENGTH+1];    if( pszFunction == NULL )        pszFunction = "SDE";    SE_error_get_string( nErrorCode, szErrorMsg );    CPLError( CE_Failure, CPLE_AppDefined,               "%s: %d/%s",               pszFunction, nErrorCode, szErrorMsg );}/************************************************************************//*                                Open()                                *//************************************************************************/int OGRSDEDataSource::Open( const char * pszNewName ){    CPLAssert( nLayers == 0 );/* -------------------------------------------------------------------- *//*      If we aren't prefixed with SDE: then ignore this datasource.    *//* -------------------------------------------------------------------- */    if( !EQUALN(pszNewName,"SDE:",4) )        return FALSE;/* -------------------------------------------------------------------- *//*      Parse arguments on comma.  We expect (layer is optional):       *//*        SDE:server,instance,database,username,password,layer          *//* -------------------------------------------------------------------- */    char **papszTokens = CSLTokenizeStringComplex( pszNewName+4, ",",                                                   TRUE, TRUE );    CPLDebug( "OGR_SDE", "Open(\"%s\") revealed %d tokens.", pszNewName,              CSLCount( papszTokens ) );    if( CSLCount( papszTokens ) < 5 || CSLCount( papszTokens ) > 6 )    {        CPLError( CE_Failure, CPLE_OpenFailed,                   "SDE connect string had wrong number of arguments.\n"                  "Expected 'SDE:server,instance,database,username,password,layer'\n"		  "The layer name value is optional.\n"                  "Got '%s'",                   pszNewName );        return FALSE;    }/* -------------------------------------------------------------------- *//*      Try to establish connection.                                    *//* -------------------------------------------------------------------- */    int 	nSDEErr;    SE_ERROR    sSDEErrorInfo;    nSDEErr = SE_connection_create( papszTokens[0],                                     papszTokens[1],                                     papszTokens[2],                                     papszTokens[3],                                    papszTokens[4],                                    &sSDEErrorInfo, &hConnection );    if( nSDEErr != SE_SUCCESS )    {        IssueSDEError( nSDEErr, "SE_connection_create" );        return FALSE;    }    pszName = CPLStrdup( pszNewName );/* -------------------------------------------------------------------- *//*      Set unprotected concurrency policy, suitable for single         *//*      threaded access.                                                *//* -------------------------------------------------------------------- */    nSDEErr = SE_connection_set_concurrency( hConnection,                                             SE_UNPROTECTED_POLICY);    if( nSDEErr != SE_SUCCESS) {        IssueSDEError( nSDEErr, NULL );        return FALSE;    }/* -------------------------------------------------------------------- *//*      Open a selected layer only, or else treat all known spatial     *//*      tables as layers.                                               *//* -------------------------------------------------------------------- */    if ( CSLCount( papszTokens ) == 6 && *papszTokens[5] != '\0' )    {        OpenSpatialTable( papszTokens[5] );    }    else    {        EnumerateSpatialTables();    }     return nLayers > 0;}/************************************************************************//*                             OpenTable()                              *//************************************************************************/int OGRSDEDataSource::OpenTable( const char *pszTableName,                                  const char *pszFIDColumn,                                 const char *pszShapeColumn ){/* -------------------------------------------------------------------- *//*      Create the layer object.                                        *//* -------------------------------------------------------------------- */    OGRSDELayer  *poLayer;    poLayer = new OGRSDELayer( this );    if( !poLayer->Initialize( pszTableName, pszFIDColumn, pszShapeColumn ) )    {        delete poLayer;        return FALSE;    }/* -------------------------------------------------------------------- *//*      Add layer to data source layer list.                            *//* -------------------------------------------------------------------- */    papoLayers = (OGRSDELayer **)        CPLRealloc( papoLayers,  sizeof(OGRSDELayer *) * (nLayers+1) );    papoLayers[nLayers++] = poLayer;    return TRUE;}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRSDEDataSource::TestCapability( const char * pszCap ){    return FALSE;}/************************************************************************//*                              GetLayer()                              *//************************************************************************/OGRLayer *OGRSDEDataSource::GetLayer( int iLayer ){    if( iLayer < 0 || iLayer >= nLayers )        return NULL;    else        return papoLayers[iLayer];}/************************************************************************//*                       EnumerateSpatialTables()                       *//************************************************************************/void OGRSDEDataSource::EnumerateSpatialTables(){/* -------------------------------------------------------------------- *//*      Fetch list of spatial tables from SDE.                          *//* -------------------------------------------------------------------- */    SE_REGINFO *ahTableList;    LONG nTableListCount;    LONG nSDEErr;    nSDEErr = SE_registration_get_info_list( hConnection, &ahTableList,                                             &nTableListCount );    if( nSDEErr != SE_SUCCESS )    {        IssueSDEError( nSDEErr, "SE_registration_get_info_list" );        return;    }    CPLDebug( "OGR_SDE", "SDE::EnumerateSpatialTables() found %d tables.", nTableListCount );/* -------------------------------------------------------------------- *//*      Process the tables, turning any appropriate ones into layers.   *//* -------------------------------------------------------------------- */    int iTable;    for( iTable = 0; iTable < nTableListCount; iTable++ )    {        CreateLayerFromRegInfo( ahTableList[iTable] );    }    SE_registration_free_info_list( nTableListCount, ahTableList );}/************************************************************************//*                          OpenSpatialTable()                          *//************************************************************************/void OGRSDEDataSource::OpenSpatialTable( const char* pszTableName ){    SE_REGINFO tableinfo = NULL;    LONG nSDEErr;    CPLDebug( "OGR_SDE", "SDE::OpenSpatialTable(\"%s\").", pszTableName );    nSDEErr = SE_reginfo_create( &tableinfo );    if( nSDEErr != SE_SUCCESS )    {        IssueSDEError( nSDEErr, "SE_reginfo_create" );    }    nSDEErr = SE_registration_get_info( hConnection, pszTableName, tableinfo );    if( nSDEErr != SE_SUCCESS )    {        IssueSDEError( nSDEErr, "SE_registration_get_info_list" );    }    else    {        CreateLayerFromRegInfo( tableinfo );    }    SE_reginfo_free( tableinfo );}/************************************************************************//*                       CreateLayerFromRegInfo()                       *//************************************************************************/void OGRSDEDataSource::CreateLayerFromRegInfo( SE_REGINFO& reginfo ){    char szTableName[SE_QUALIFIED_TABLE_NAME+1];    char szIDColName[SE_MAX_COLUMN_LEN+1];    LONG nFIDColType;    LONG nSDEErr;    // Ignore non-spatial, or hidden tables.     if( !SE_reginfo_has_layer( reginfo ) || SE_reginfo_is_hidden( reginfo ) )    {        return;    }    nSDEErr = SE_reginfo_get_table_name( reginfo, szTableName );    if( nSDEErr != SE_SUCCESS )    {        return;    }    CPLDebug( "OGR_SDE", "CreateLayerFromRegInfo() asked to load table \"%s\".", szTableName );    nSDEErr = SE_reginfo_get_rowid_column( reginfo, szIDColName, &nFIDColType );    if( nFIDColType == SE_REGISTRATION_ROW_ID_COLUMN_TYPE_NONE        || strlen(szIDColName) == 0 )    {        CPLDebug( "OGR_SDE", "Unable to determine FID column for %s.",                   szTableName );        OpenTable( szTableName, NULL, NULL );    }    else        OpenTable( szTableName, szIDColName, NULL );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄色资源网久久资源365| 奇米色一区二区| 精品国产免费视频| 欧美精品一区二区在线播放| 欧美中文字幕亚洲一区二区va在线 | 日韩一区二区三区电影在线观看| 色8久久精品久久久久久蜜| 色妹子一区二区| 欧美午夜一区二区三区免费大片| 色婷婷久久综合| 在线看不卡av| 精品久久久久一区| 91精品国产综合久久香蕉麻豆 | 亚洲精品一二三| 日本亚洲天堂网| 国产精品综合二区| 欧美日韩国产一二三| 国产精品久久久久影院| 亚洲女人的天堂| 国产成人午夜精品影院观看视频| 国产成a人亚洲精品| 欧亚一区二区三区| 26uuu国产一区二区三区| 亚洲免费在线播放| 久久国产福利国产秒拍| 一本色道久久综合亚洲精品按摩| 欧美性色黄大片| 亚洲人成网站精品片在线观看 | 日韩一卡二卡三卡| 精品乱人伦小说| 久久免费午夜影院| 美女视频黄免费的久久 | 久久精品国产在热久久| 欧美午夜免费电影| 亚洲男同性恋视频| 欧美在线不卡视频| 亚洲天堂精品在线观看| av亚洲产国偷v产偷v自拍| 26uuu亚洲| 国产精品996| 久久久99精品久久| 热久久久久久久| 久久老女人爱爱| 亚洲人xxxx| 欧美日韩久久久一区| 亚洲高清免费一级二级三级| 色婷婷一区二区| 日韩高清电影一区| 国产精品久线在线观看| av在线不卡网| 污片在线观看一区二区| 日韩欧美的一区| 国产盗摄女厕一区二区三区| 亚洲综合久久久久| 欧美成va人片在线观看| 国产精品一级黄| 天天做天天摸天天爽国产一区 | 日韩欧美视频在线| 看片网站欧美日韩| 一色屋精品亚洲香蕉网站| 日韩免费视频线观看| 在线看国产一区| 成人免费电影视频| 国产激情一区二区三区四区| 日本欧洲一区二区| 一区二区三区四区五区视频在线观看| 欧美日韩国产一二三| 99re这里只有精品6| 国产成人精品影视| 偷拍自拍另类欧美| 午夜视频在线观看一区| 亚洲精品视频一区| 亚洲激情av在线| 一区二区三区成人| 亚洲一线二线三线视频| 亚洲成人激情自拍| 日本不卡在线视频| 日本伊人色综合网| 国产乱一区二区| 色琪琪一区二区三区亚洲区| 色噜噜狠狠成人网p站| 在线欧美一区二区| 欧美日本国产视频| 久久免费偷拍视频| 亚洲sss视频在线视频| 丝袜a∨在线一区二区三区不卡| 亚洲成人av免费| 国产白丝精品91爽爽久久| 99视频精品免费视频| 欧美一区二区三区四区高清| 日韩欧美一级片| 国产精品―色哟哟| 美女任你摸久久| 精品视频一区二区三区免费| 久久久五月婷婷| 日本成人中文字幕在线视频| 国产精品影视在线观看| 在线看一区二区| 日本一区二区动态图| 国产成人h网站| xnxx国产精品| 肉丝袜脚交视频一区二区| 久久99蜜桃精品| 91麻豆精品国产91久久久久久久久| 久久影院午夜片一区| 视频一区免费在线观看| 欧美午夜电影在线播放| 亚洲老司机在线| 欧美美女视频在线观看| 亚洲欧美日韩国产综合在线| 国产在线视频一区二区三区| 欧美三级资源在线| 一区二区日韩电影| 欧美性猛交xxxx黑人交| 日韩成人免费电影| 日韩一区二区免费视频| 蜜桃视频一区二区| 国产人久久人人人人爽| 麻豆成人久久精品二区三区红| 欧美日韩一级片在线观看| 一区二区不卡在线播放| 91精品国产综合久久精品图片| 麻豆精品视频在线| 亚洲天堂a在线| 制服丝袜一区二区三区| 国产成a人亚洲精品| 亚洲欧美日韩电影| 日韩三级视频中文字幕| 国产91综合一区在线观看| 中文字幕不卡在线观看| 欧美日韩亚洲综合一区| 国产成人综合自拍| 蜜桃av噜噜一区二区三区小说| 国产精品不卡在线观看| wwwwww.欧美系列| 欧美性欧美巨大黑白大战| 99精品热视频| 懂色av一区二区三区蜜臀| 亚洲妇女屁股眼交7| 26uuu久久综合| 日韩区在线观看| 欧美一区三区二区| 91福利社在线观看| 91色在线porny| 国产91丝袜在线播放九色| 青青草伊人久久| 美女脱光内衣内裤视频久久网站 | 精品国产三级a在线观看| 欧美欧美午夜aⅴ在线观看| 99久久99久久精品国产片果冻| 久久精品噜噜噜成人88aⅴ | 欧美日韩在线三区| 日本丰满少妇一区二区三区| 91视视频在线观看入口直接观看www | 欧美人狂配大交3d怪物一区| 99精品1区2区| 成人av在线看| 91小视频免费看| 在线精品观看国产| 在线这里只有精品| 欧美日韩国产精品自在自线| 欧美精品乱码久久久久久按摩| 欧美揉bbbbb揉bbbbb| 欧美老肥妇做.爰bbww视频| 欧美xingq一区二区| 国产目拍亚洲精品99久久精品| 国产精品嫩草久久久久| 天天av天天翘天天综合网色鬼国产| 狠狠色丁香九九婷婷综合五月| 9色porny自拍视频一区二区| 欧美精品一区男女天堂| 日本女人一区二区三区| 日韩三级精品电影久久久| 亚洲精品国产无天堂网2021 | 国产精品卡一卡二卡三| 国产成人在线视频网站| 中文字幕av在线一区二区三区| 秋霞影院一区二区| 欧美不卡一二三| 国产精品99久久久久久久vr| 国产精品欧美极品| 91麻豆6部合集magnet| 偷拍日韩校园综合在线| 91精品国产全国免费观看| 国产伦理精品不卡| 亚洲免费av高清| 久久精品视频一区| 91污在线观看| 中文字幕免费不卡| 91高清视频在线| 日韩中文字幕麻豆| 国产精品久久三区| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品成人一区二区艾草| 欧美日韩一区在线观看| 久久国产尿小便嘘嘘| 亚洲精品高清在线观看| 国产无遮挡一区二区三区毛片日本| 91在线一区二区| 国产成人精品影院|