| #Requires: Esri's ArcPy.da module and PyODBC module | |
| #Note: Search for <VARIABLE> to replace with new values, and update inputs | |
| import arcpy, pyodbc | |
| def fn_ReadPolygons(fc_in,wkid): | |
| #This function loops through a polygon layer and converts geometry to WKT format | |
| #Additional attributes can also be added for insert | |
| #The input layer and WKID of the Geography type is required | |
| for row in arcpy.da.SearchCursor(fc_in, ["SHAPE@WKT"]): | |
| sqlInsertStatement = "INSERT INTO SpatialTable (GeogCol1) VALUES (geography::STMPolyFromText(" | |
| sqlInsertStatement += "'" + row[0] + "'," + wkid + "))" | |
| fn_SqlStatement(sqlInsertStatement, "Load Polygon Statement") | |
| #End function - fn_ReadPolygons | |
| def fn_SqlStatement(sqlStatement, sqlPurpose): | |
| #This function connects to SQL Server and runs the SQL commands | |
| #The full SQL Statement is passed to the function, along with a brief description for error checking | |
| try: | |
| cnxn_SQL = pyodbc.connect("DRIVER={SQL Server};SERVER=<VARIABLE>;DATABASE=<VARIABLE>;UID=<VARIABLE>;PWD=<VARIABLE>") | |
| cursor_SQL = cnxn_SQL.cursor() | |
| cursor_SQL.execute(sqlStatement) | |
| cnxn_SQL.commit() | |
| cnxn_SQL.close() | |
| except: | |
| print 'error in fn_SqlStatement: ' + sqlPurpose | |
| #End function - fn_SqlStatement | |
| #MAIN CODE# | |
| #Call function with a File Geodatabase polygon layer in WGS84(4326). | |
| fn_ReadPolygons(r"C:\TestGeodatabase.gdb\PolygonFC","4326") |