<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Could this be better (data transfer Access -&amp;gt; SDE)? in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419574#M32941</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;...and here's where things probably get messy. We have two connection possibilities, depending on if the user is simply just viewing data or if they are "editors" of data in the SDE. Here's the screenshot of the connection as an editor:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="sdeTableName.jpg" class="jive-image image-1" src="https://community.esri.com/legacyfs/online/63844_sdeTableName.jpg" style="width: 620px; height: 48px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The other connection (view only) would appear as WIN_USER@SPW_GIS_PROD@sql2012-sql127.sde:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="sdeViewOnlyConnection.jpg" class="jive-image image-2" src="https://community.esri.com/legacyfs/online/63860_sdeViewOnlyConnection.jpg" style="width: 620px; height: 94px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 20 Feb 2015 18:44:33 GMT</pubDate>
    <dc:creator>SteveCole</dc:creator>
    <dc:date>2015-02-20T18:44:33Z</dc:date>
    <item>
      <title>Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419564#M32931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Of all the programming languages I know and use, Python is at the bottom so I want to post this script to see if what I have is as efficient as it can be. The Backstory: Our organization has a web map showing stream gage information. The gage information comes into and is stored in an Access. The third party stream gage software runs an annual maintenance on the Access database so we cannot just link to the table directly because that would conflict with database maintenance that occurs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My solution was to develop a simple script which would connect to the Access database, select all records in a given query, and then transfer that information over to a table in SDE which, in turn, is consumed by the map's services. The script runs as a windows task every five minutes and performs an initial test to see if it's "safe" to connect to the Access Database. If it is, the data is read and passed on to the table. The number of rows in the Access database on average is roughly 2200-2400 records. Initially, the script took about 40 seconds to run but lately it has taken longer. (hence my post about it).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So- here is the script. I've left all the comments in it so hopefully there's not any confusion about what's happening. Is there a better way to approach and accomplish this task? Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steve&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Script:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import sys
import os
import linecache
import logging
import arcpy
from datetime import datetime
from arcpy import env


file01 = r"\\pmc-floodwatch\DIADvisorDatabases\DvLive.mok" #This file must exist
file02 = r"\\pmc-floodwatch\DIADvisorDatabases\DvLive.mno" #This file must NOT exist
expression = '1=1' #SQL shorthand which select all records
theTable = "tblGageData"


#Establish the error log file 
logger = logging.getLogger('errorLog')
hdlr = logging.FileHandler(r'\\snoco\gis\pw\tes\spwscc\python\errorLog.log')
logger.addHandler(hdlr)


# The tables within DIADvisor must not be accessed during its daily database maintenance.
# OneRain recommends checking for the existence and non-existence of two specific files.
# If both conditions are true, it is safe to proceed with connecting to the data within
# the dvLive Access database
if os.path.exists(file01) and not os.path.exists(file02):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Processing start time: " + str(datetime.now())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.workspace = r"C:\gishome\tasks\flood_warning_system\_SPW_GDBMGR@GIS_PW_SWM.sde"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Set some local variables
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempTableView = "gageTableView"


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Execute MakeTableView
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MakeTableView_management(theTable, tempTableView)


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Execute SelectLayerByAttribute to select all records
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(tempTableView, "NEW_SELECTION", expression)


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Execute GetCount and if some records have been selected, then execute
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp; DeleteRows to delete the selected records.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if int(arcpy.GetCount_management(tempTableView).getOutput(0)) &amp;gt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteRows_management(tempTableView)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Now connect to the DIADvisor access database and import the most recent data
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This requires the OLD DB connection previously established using ArcCatalog
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = 0


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accessRows = arcpy.SearchCursor(r"C:\gishome\tasks\flood_warning_system\jetConnectForDvLive.odc\last3days")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curSde = arcpy.InsertCursor(r"C:\gishome\tasks\flood_warning_system\_SPW_GDBMGR@GIS_PW_SWM.sde\tblGageData")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Loop through the results returned via the OLE DB connection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for cRow in accessRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curSensorId = cRow.sensor_id
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curEpoch = cRow.epoch
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curData = cRow.data
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curDataValue2 = cRow.dataValue2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter += 1


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Insert a new row into the SDE table with the current DIADvisor record's information
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = curSde.newRow()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.SENSOR_ID = curSensorId
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.EPOCH = curEpoch
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.DATA = curData
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.dataValue2 = curDataValue2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curSde.insertRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # We're done so perform some variable cleanup
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del row
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del accessRows
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del curSde
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del cRow
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Number of record(s) in the DIADvisor database: " + str(counter)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Processing end time: " + str(datetime.now())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception as e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If an error occurred, print line number and error message
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exc_type, exc_obj, exc_tb = sys.exc_info()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = "\n" + 80*"#" + "\n" + 80*"#" + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + "DATE/TIME: " + str(datetime.now()) + ":" + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + "EXECPTION: " + str(e) + "\n" + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + "CALLBACK TRACE: " + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + 20*" " + "File: " + str(exc_tb.tb_frame.f_code.co_filename) + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + 20*" " + "Line " + str(exc_tb.tb_lineno) + ": " + str(linecache.getline(exc_tb.tb_frame.f_code.co_filename, exc_tb.tb_lineno))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theMessage = theMessage + 20*" " + "Exception Type: " + str(exc_type)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print theMessage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.error(theMessage)
else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:58:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419564#M32931</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2021-12-11T18:58:06Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419565#M32932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Steve,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One way to speed up your script is to use the &lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//002z0000001q000000"&gt;data access module&lt;/A&gt; (arcpy.da).&amp;nbsp; ArcGIS 10.1 introduced this and the performance is much faster than the previous search/insert/update cursors. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 16:50:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419565#M32932</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2015-02-20T16:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419566#M32933</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In your script it appears you are deleting ALL records from the SDE table prior to the insert. Is the goal to remove all the records prior to the insert cursor?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this is such the case, I would not recommend using the Delete Rows command, but rather the Truncate Table command. In SQL, truncate is much more efficient than delete. However, this requires that your table is not registered as versioned.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 16:58:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419566#M32933</guid>
      <dc:creator>ChristianWells</dc:creator>
      <dc:date>2015-02-20T16:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419567#M32934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. guys. This is exactly the kind of feedback I was hoping for.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/32138"&gt;Christian Wells&lt;/A&gt;‌ yes- the SDE table is wiped clean before the records are transferred. The table is not registered as versioned so that won't be a problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 17:12:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419567#M32934</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T17:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419568#M32935</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/32138"&gt;Christian Wells&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, I was making the change from deleteRows to truncate and got the following message:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ERROR 001400: Only the data owner may execute truncate."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not quite sure what to do about this. I was running the script manually but using the same db connection string that our automated task uses. How do I overcome this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 17:53:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419568#M32935</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T17:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419569#M32936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Steve, we would just need to use the account of the data owner. In ArcCatalog, you may see the feature class displayed as "SDE.tblGageData". In this case, "SDE" would be the data owner. To overcome this, the username from the database connection would need to match. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 17:58:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419569#M32936</guid>
      <dc:creator>ChristianWells</dc:creator>
      <dc:date>2015-02-20T17:58:53Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419570#M32937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not just setup a scheduled import package on the RDBMS to just update the table?&amp;nbsp; Seems like the best way to manage tabular data is at the database rather than some external app that needs to be executed and maintained.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:11:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419570#M32937</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2015-02-20T18:11:22Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419571#M32938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So, the connection string to SDE is using operating system authentication instead of database authentication. Would I need to use db authentication instead? And then, which account? SDE?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:26:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419571#M32938</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T18:26:59Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419572#M32939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/7306"&gt;James Crandall&lt;/A&gt;‌&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Honestly, I don't know. This just seemed like a reasonable approach to me at the time. &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/grin.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not completely sure about what you're suggesting. Are you talking about simply importing the table into SDE everytime the task scheduler runs? I kinda thought about that but since the table is also being consumed in a map service, I wondered if deleting it would cause issues (albeit it would only be deleted for a fraction of time).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:30:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419572#M32939</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T18:30:10Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419573#M32940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would depend on who the owner is. If you look in ArcCatalog, what is the fully qualified name of the feature class/table?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:30:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419573#M32940</guid>
      <dc:creator>ChristianWells</dc:creator>
      <dc:date>2015-02-20T18:30:39Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419574#M32941</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;...and here's where things probably get messy. We have two connection possibilities, depending on if the user is simply just viewing data or if they are "editors" of data in the SDE. Here's the screenshot of the connection as an editor:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="sdeTableName.jpg" class="jive-image image-1" src="https://community.esri.com/legacyfs/online/63844_sdeTableName.jpg" style="width: 620px; height: 48px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The other connection (view only) would appear as WIN_USER@SPW_GIS_PROD@sql2012-sql127.sde:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="sdeViewOnlyConnection.jpg" class="jive-image image-2" src="https://community.esri.com/legacyfs/online/63860_sdeViewOnlyConnection.jpg" style="width: 620px; height: 94px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:44:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419574#M32941</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T18:44:33Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419575#M32942</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In this case, you would have to make a connection as SPW_GDBA&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 18:47:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419575#M32942</guid>
      <dc:creator>ChristianWells</dc:creator>
      <dc:date>2015-02-20T18:47:20Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419576#M32943</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well... this sure sounds like a database management task.&amp;nbsp; Handling it at the database seems far more reasonable, scalable and maintainable compared to messy scripting that will be subjected to failure over time as system-level changes occur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd get with the DBA and work it out.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 19:59:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419576#M32943</guid>
      <dc:creator>JamesCrandall</dc:creator>
      <dc:date>2015-02-20T19:59:05Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419577#M32944</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I second this. Use the arcpy.da module for cursors and use them in a with statement so the cursors are automatically deleted even if there was an error. Your current code may not delete the cursors if there was an error.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 22:01:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419577#M32944</guid>
      <dc:creator>BlakeTerhune</dc:creator>
      <dc:date>2015-02-20T22:01:29Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419578#M32945</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="https://community.esri.com/migrated-users/48550"&gt;Blake T&lt;/A&gt;‌ I have switched my code base over to using the da module and it runs successfully. Can you point me to a code sample that illustrates using the "with" statement?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 22:10:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419578#M32945</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T22:10:45Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419579#M32946</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are some basic examples in the Esri help documentation&lt;/P&gt;&lt;P&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.2/018w/018w00000011000000.htm" title="http://resources.arcgis.com/en/help/main/10.2/018w/018w00000011000000.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;ArcGIS Help 10.2 - SearchCursor (arcpy.da)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your particular code, it's as simple as just starting with the cursors in nested &lt;SPAN style="font-family: 'courier new', courier;"&gt;with&lt;/SPAN&gt; statements and removing the &lt;SPAN style="font-family: 'courier new', courier;"&gt;del&lt;/SPAN&gt; lines afterwards.&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;with arcpy.SearchCursor(r"C:\gishome\tasks\flood_warning_system\jetConnectForDvLive.odc\last3days") as accessRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.InsertCursor(r"C:\gishome\tasks\flood_warning_system\_SPW_GDBMGR@GIS_PW_SWM.sde\tblGageData") as curSde:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for cRow in accessRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Loop through the results returned via the OLE DB connection
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ##

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Insert a new row into the SDE table with the current DIADvisor record's information
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ##

print "Number of record(s) in the DIADvisor database: " + str(counter)
print "Processing end time: " + str(datetime.now())&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:58:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419579#M32946</guid>
      <dc:creator>BlakeTerhune</dc:creator>
      <dc:date>2021-12-11T18:58:09Z</dc:date>
    </item>
    <item>
      <title>Re: Could this be better (data transfer Access -&gt; SDE)?</title>
      <link>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419580#M32947</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Gotcha. Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Feb 2015 22:25:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/could-this-be-better-data-transfer-access-gt-sde/m-p/419580#M32947</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2015-02-20T22:25:49Z</dc:date>
    </item>
  </channel>
</rss>

