Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: OpenGIS Simple Features Reference Implementation 4 : * Purpose: Implements OGRODBCDriver class. 5 : * Author: Frank Warmerdam, warmerdam@pobox.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2003, Frank Warmerdam <warmerdam@pobox.com> 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #include "ogr_odbc.h" 14 : #include "cpl_conv.h" 15 : #include "ogrodbcdrivercore.h" 16 : 17 : /************************************************************************/ 18 : /* OGRODBCDriverOpen() */ 19 : /************************************************************************/ 20 : 21 2 : static GDALDataset *OGRODBCDriverOpen(GDALOpenInfo *poOpenInfo) 22 : 23 : { 24 2 : if (OGRODBCDriverIdentify(poOpenInfo) == FALSE) 25 0 : return nullptr; 26 : 27 2 : OGRODBCDataSource *poDS = new OGRODBCDataSource(); 28 : 29 2 : if (!poDS->Open(poOpenInfo)) 30 : { 31 2 : delete poDS; 32 2 : return nullptr; 33 : } 34 : else 35 0 : return poDS; 36 : } 37 : 38 : /************************************************************************/ 39 : /* RegisterOGRODBC() */ 40 : /************************************************************************/ 41 : 42 9 : void RegisterOGRODBC() 43 : 44 : { 45 9 : if (GDALGetDriverByName(DRIVER_NAME) != nullptr) 46 0 : return; 47 : 48 9 : GDALDriver *poDriver = new GDALDriver; 49 9 : OGRODBCDriverSetCommonMetadata(poDriver); 50 9 : poDriver->pfnOpen = OGRODBCDriverOpen; 51 : 52 9 : GetGDALDriverManager()->RegisterDriver(poDriver); 53 : }