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

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

?? ogrmysqllayer.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
字號:
/****************************************************************************** * $Id: ogrmysqllayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  OpenGIS Simple Features Reference Implementation * Purpose:  Implements OGRMySQLLayer class. * Author:   Frank Warmerdam, warmerdam@pobox.com * Author:   Howard Butler, hobu@hobu.net * ****************************************************************************** * Copyright (c) 2004, 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_mysql.h"#include "cpl_conv.h"#include "cpl_string.h"CPL_CVSID("$Id: ogrmysqllayer.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                           OGRMySQLLayer()                            *//************************************************************************/OGRMySQLLayer::OGRMySQLLayer(){    poDS = NULL;    pszGeomColumn = NULL;    pszGeomColumnTable = NULL;    pszFIDColumn = NULL;    pszQueryStatement = NULL;    bHasFid = FALSE;    pszFIDColumn = NULL;    iNextShapeId = 0;    nResultOffset = 0;    poSRS = NULL;    nSRSId = -2; // we haven't even queried the database for it yet.     poFeatureDefn = NULL;    hResultSet = NULL;}/************************************************************************//*                           ~OGRMySQLLayer()                           *//************************************************************************/OGRMySQLLayer::~OGRMySQLLayer(){    if( m_nFeaturesRead > 0 && poFeatureDefn != NULL )    {        CPLDebug( "MySQL", "%d features read on layer '%s'.",                  (int) m_nFeaturesRead,                   poFeatureDefn->GetName() );    }    ResetReading();    CPLFree( pszGeomColumn );    CPLFree( pszGeomColumnTable );    CPLFree( pszFIDColumn );    CPLFree( pszQueryStatement );    if( poSRS != NULL )        poSRS->Release();    if( poFeatureDefn )        poFeatureDefn->Release();}/************************************************************************//*                            ResetReading()                            *//************************************************************************/void OGRMySQLLayer::ResetReading(){    iNextShapeId = 0;    if( hResultSet != NULL )    {        mysql_free_result( hResultSet );        hResultSet = NULL;        poDS->InterruptLongResult();    }}/************************************************************************//*                           GetNextFeature()                           *//************************************************************************/OGRFeature *OGRMySQLLayer::GetNextFeature(){    for( ; TRUE; )    {        OGRFeature      *poFeature;        poFeature = GetNextRawFeature();        if( poFeature == NULL )            return NULL;        if( (m_poFilterGeom == NULL            || FilterGeometry( poFeature->GetGeometryRef() ) )            && (m_poAttrQuery == NULL                || m_poAttrQuery->Evaluate( poFeature )) )            return poFeature;        delete poFeature;    }}/************************************************************************//*                          RecordToFeature()                           *//*                                                                      *//*      Convert the indicated record of the current result set into     *//*      a feature.                                                      *//************************************************************************/OGRFeature *OGRMySQLLayer::RecordToFeature( char **papszRow,                                            unsigned long *panLengths ){    mysql_field_seek( hResultSet, 0 );/* -------------------------------------------------------------------- *//*      Create a feature from the current result.                       *//* -------------------------------------------------------------------- */    int         iField;    OGRFeature *poFeature = new OGRFeature( poFeatureDefn );    poFeature->SetFID( iNextShapeId );    m_nFeaturesRead++;/* ==================================================================== *//*      Transfer all result fields we can.                              *//* ==================================================================== */    for( iField = 0;          iField < (int) mysql_num_fields(hResultSet);         iField++ )    {        int     iOGRField;        MYSQL_FIELD *psMSField = mysql_fetch_field(hResultSet);/* -------------------------------------------------------------------- *//*      Handle FID.                                                     *//* -------------------------------------------------------------------- */        if( bHasFid && EQUAL(psMSField->name,pszFIDColumn) )        {            if( papszRow[iField] == NULL )            {                CPLError( CE_Failure, CPLE_AppDefined,                          "NULL primary key in RecordToFeature()" );                return NULL;            }            poFeature->SetFID( atoi(papszRow[iField]) );        }        if( papszRow[iField] == NULL )         {//            CPLDebug("MYSQL", "%s was null for %d", psMSField->name,//                     iNextShapeId);            continue;        }/* -------------------------------------------------------------------- *//*      Handle MySQL geometry                                           *//* -------------------------------------------------------------------- */        if( pszGeomColumn && EQUAL(psMSField->name,pszGeomColumn))        {            OGRGeometry *poGeometry = NULL;                        // Geometry columns will have the first 4 bytes contain the SRID.            OGRGeometryFactory::createFromWkb(                ((GByte *)papszRow[iField]) + 4,                 NULL,                &poGeometry,                panLengths[iField] - 4 );            if( poGeometry != NULL )                poFeature->SetGeometryDirectly( poGeometry );            continue;        }/* -------------------------------------------------------------------- *//*      Transfer regular data fields.                                   *//* -------------------------------------------------------------------- */        iOGRField = poFeatureDefn->GetFieldIndex(psMSField->name);        if( iOGRField < 0 )            continue;        OGRFieldDefn *psFieldDefn = poFeatureDefn->GetFieldDefn( iOGRField );        if( psFieldDefn->GetType() == OFTBinary )        {            poFeature->SetField( iOGRField, panLengths[iField],                                  (GByte *) papszRow[iField] );        }        else        {            poFeature->SetField( iOGRField, papszRow[iField] );        }    }    return poFeature;}/************************************************************************//*                         GetNextRawFeature()                          *//************************************************************************/OGRFeature *OGRMySQLLayer::GetNextRawFeature(){/* -------------------------------------------------------------------- *//*      Do we need to establish an initial query?                       *//* -------------------------------------------------------------------- */    if( iNextShapeId == 0 && hResultSet == NULL )    {        CPLAssert( pszQueryStatement != NULL );        poDS->RequestLongResult( this );        if( mysql_query( poDS->GetConn(), pszQueryStatement ) )        {            poDS->ReportError( pszQueryStatement );            return NULL;        }        hResultSet = mysql_use_result( poDS->GetConn() );        if( hResultSet == NULL )        {            poDS->ReportError( "mysql_use_result() failed on query." );            return FALSE;        }    }/* -------------------------------------------------------------------- *//*      Fetch next record.                                              *//* -------------------------------------------------------------------- */    char **papszRow;    unsigned long *panLengths;    papszRow = mysql_fetch_row( hResultSet );    if( papszRow == NULL )    {        ResetReading();        return NULL;    }    panLengths = mysql_fetch_lengths( hResultSet );/* -------------------------------------------------------------------- *//*      Process record.                                                 *//* -------------------------------------------------------------------- */    OGRFeature *poFeature = RecordToFeature( papszRow, panLengths );    iNextShapeId++;    return poFeature;}/************************************************************************//*                             GetFeature()                             *//*                                                                      *//*      Note that we actually override this in OGRMySQLTableLayer.      *//************************************************************************/OGRFeature *OGRMySQLLayer::GetFeature( long nFeatureId ){    return OGRLayer::GetFeature( nFeatureId );}/************************************************************************//*                           TestCapability()                           *//************************************************************************/int OGRMySQLLayer::TestCapability( const char * pszCap ){    if( EQUAL(pszCap,OLCRandomRead) )        return FALSE;    else if( EQUAL(pszCap,OLCFastFeatureCount) )        return TRUE;    else if( EQUAL(pszCap,OLCFastSpatialFilter) )        return TRUE;    else if( EQUAL(pszCap,OLCTransactions) )        return FALSE;	else if( EQUAL(pszCap,OLCFastGetExtent) )		return FALSE;    else        return FALSE;}    /************************************************************************//*                            GetFIDColumn()                            *//************************************************************************/const char *OGRMySQLLayer::GetFIDColumn() {    if( pszFIDColumn != NULL )        return pszFIDColumn;    else        return "";}/************************************************************************//*                         GetGeometryColumn()                          *//************************************************************************/const char *OGRMySQLLayer::GetGeometryColumn() {    if( pszGeomColumn != NULL )        return pszGeomColumn;    else        return "";}/************************************************************************//*                         FetchSRSId()                                 *//************************************************************************/int OGRMySQLLayer::FetchSRSId(){	char         szCommand[1024];    char           **papszRow;          if( hResultSet != NULL )        mysql_free_result( hResultSet );		hResultSet = NULL;				    sprintf( szCommand,              "SELECT srid FROM geometry_columns "             "WHERE f_table_name = '%s'",             pszGeomColumnTable );    if( !mysql_query( poDS->GetConn(), szCommand ) )        hResultSet = mysql_store_result( poDS->GetConn() );    papszRow = NULL;    if( hResultSet != NULL )        papszRow = mysql_fetch_row( hResultSet );            if( papszRow != NULL && papszRow[0] != NULL )    {        nSRSId = atoi(papszRow[0]);    }    // make sure to free our results    if( hResultSet != NULL )        mysql_free_result( hResultSet );		hResultSet = NULL;        	return nSRSId;}/************************************************************************//*                           GetSpatialRef()                            *//************************************************************************/OGRSpatialReference *OGRMySQLLayer::GetSpatialRef(){    if( poSRS == NULL && nSRSId > -1 )    {        poSRS = poDS->FetchSRS( nSRSId );        if( poSRS != NULL )            poSRS->Reference();        else            nSRSId = -1;    }    return poSRS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷色综合| 亚洲欧洲成人自拍| 色又黄又爽网站www久久| 日韩国产欧美三级| 中文字幕在线不卡| 精品国产三级a在线观看| 日本电影欧美片| 国产91丝袜在线播放| 日本欧美在线观看| 亚洲综合区在线| 中文字幕视频一区二区三区久| 在线不卡欧美精品一区二区三区| av在线这里只有精品| 国产在线国偷精品产拍免费yy| 亚洲狠狠爱一区二区三区| 亚洲国产精品精华液ab| 久久婷婷一区二区三区| 欧美一区二区在线看| 欧美日韩一区高清| 色婷婷精品大在线视频| 成人爽a毛片一区二区免费| 久久精品国产精品亚洲红杏 | 日韩三级.com| 欧美亚洲综合一区| 色婷婷精品大在线视频 | 国产成人精品影视| 国内精品伊人久久久久av一坑| 天天综合天天做天天综合| 夜夜精品视频一区二区 | 在线成人免费观看| 欧美日韩在线三级| 在线一区二区三区四区五区| 91偷拍与自偷拍精品| 97久久人人超碰| 99精品视频在线观看| 成人成人成人在线视频| 国产成人综合亚洲91猫咪| 久久99日本精品| 激情欧美日韩一区二区| 久久99最新地址| 国产一区二区看久久| 国产在线观看一区二区| 国产精品1区2区| 国产激情视频一区二区三区欧美| 国内外成人在线| 国产成人av影院| 成人黄色在线网站| 色综合天天综合网天天看片| a美女胸又www黄视频久久| 91看片淫黄大片一级| 欧美亚洲高清一区| 91精品久久久久久蜜臀| 欧美一卡2卡3卡4卡| 日韩欧美电影在线| 国产欧美一区二区三区在线老狼| 日本一区二区三区国色天香| 亚洲欧美自拍偷拍| 一区二区三区鲁丝不卡| 视频一区二区不卡| 韩国在线一区二区| 国产91精品久久久久久久网曝门| 成人性生交大片免费看中文网站| a级精品国产片在线观看| 欧美性感一区二区三区| 欧美日本韩国一区| 久久综合九色综合久久久精品综合| 国产三级精品在线| 亚洲精品视频免费观看| 秋霞电影一区二区| 风间由美一区二区av101| 色综合夜色一区| 欧美一级一级性生活免费录像| 26uuu色噜噜精品一区二区| 中文字幕一区二区三区视频| 亚洲444eee在线观看| 国产精品亚洲一区二区三区妖精| 99热精品国产| 日韩欧美区一区二| 亚洲人成网站精品片在线观看| 三级欧美在线一区| 成人污视频在线观看| 欧美精品久久久久久久久老牛影院| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品视频麻豆| 午夜精品久久久| 国产成人一级电影| 欧美老女人第四色| 国产精品国模大尺度视频| 日韩电影在线观看电影| a级精品国产片在线观看| 日韩欧美色综合网站| 亚洲精品免费电影| 国产精品一区二区91| 欧美精品18+| 亚洲色图在线看| 精品一二三四在线| 色哟哟国产精品| 国产日韩欧美综合在线| 日韩av中文在线观看| 色欧美88888久久久久久影院| 欧美r级在线观看| 亚洲一区精品在线| 成人网页在线观看| 337p日本欧洲亚洲大胆精品| 性感美女极品91精品| 99re成人在线| 国产视频911| 激情成人午夜视频| 欧美一区二区三区四区在线观看| 亚洲区小说区图片区qvod| 国产露脸91国语对白| 日韩一级二级三级| 五月天久久比比资源色| 一本色道**综合亚洲精品蜜桃冫| 国产欧美精品区一区二区三区| 日本大胆欧美人术艺术动态 | 久久影音资源网| 秋霞av亚洲一区二区三| 在线观看一区二区视频| 国产精品色婷婷久久58| 国产美女精品在线| 欧美mv日韩mv亚洲| 日日夜夜一区二区| 欧美日韩久久久一区| 一区二区三区蜜桃| 色婷婷久久久综合中文字幕| 国产精品视频你懂的| 成人美女视频在线观看18| 久久久不卡网国产精品二区| 经典一区二区三区| 2024国产精品视频| 国产一区在线观看麻豆| 欧美大胆人体bbbb| 老司机精品视频线观看86| 欧美一区二区三区日韩| 秋霞午夜鲁丝一区二区老狼| 在线不卡的av| 久久成人精品无人区| 亚洲精品在线电影| 精品系列免费在线观看| 久久久亚洲综合| 成人精品视频.| 国产精品女主播在线观看| 不卡电影免费在线播放一区| 中文字幕精品综合| 99r精品视频| 一区二区三区中文字幕| 在线视频一区二区三区| 午夜精品福利一区二区三区蜜桃| 欧美日韩国产成人在线免费| 日韩高清不卡在线| 久久亚洲二区三区| 成人爱爱电影网址| 亚洲精品欧美激情| 欧美老女人在线| 国产在线精品一区二区夜色 | 欧美一区二区久久| 国产一区二区三区日韩| 亚洲国产成人在线| 欧美亚洲另类激情小说| 日韩国产欧美一区二区三区| 精品免费日韩av| 不卡一区中文字幕| 一区二区三区欧美| 欧美一级欧美三级| 成人av网在线| 亚洲国产精品久久久男人的天堂| 在线电影国产精品| 国产·精品毛片| 一区二区三区在线免费播放 | 亚洲欧美一区二区视频| 欧美日韩成人高清| 精品一区二区三区在线视频| 一区视频在线播放| 在线不卡一区二区| 成人高清视频免费观看| 亚洲午夜影视影院在线观看| 精品国产一区a| 91黄视频在线观看| 国产一区二区久久| 亚洲一区二区三区四区不卡| 欧美精品一区二区三区在线播放| 成人精品电影在线观看| 日韩高清在线一区| **网站欧美大片在线观看| 日韩一区二区三区观看| 99re这里只有精品视频首页| 蜜桃视频在线一区| 一区二区三区精品在线| www国产成人| 9191国产精品| 色综合久久99| 国产曰批免费观看久久久| 亚洲成人福利片| √…a在线天堂一区| 久久这里只有精品6| 欧美日韩高清影院| 91视频在线看| 国产91精品精华液一区二区三区| 日韩va欧美va亚洲va久久|