Bläddra i källkod

wxGUI: fix https://trac.osgeo.org/grass/ticket/1270 (merge from release branch, https://trac.osgeo.org/grass/changeset/55306)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55343 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 12 år sedan
förälder
incheckning
6c8461382e
1 ändrade filer med 9 tillägg och 6 borttagningar
  1. 9 6
      gui/wxpython/dbmgr/base.py

+ 9 - 6
gui/wxpython/dbmgr/base.py

@@ -815,17 +815,18 @@ class DbMgrNotebookBase(FN.FlatNotebook):
         
         # perform SQL non-select statements (e.g. 'delete from table where cat=1')
         if len(listOfSQLStatements) > 0:
-            sqlFile = tempfile.NamedTemporaryFile(mode = "wt")
+            fd, sqlFilePath = tempfile.mkstemp(text=True)
+            sqlFile = open(sqlFilePath, 'w')
             for sql in listOfSQLStatements:
                 enc = UserSettings.Get(group = 'atm', key = 'encoding', subkey = 'value')
                 if not enc and 'GRASS_DB_ENCODING' in os.environ:
                     enc = os.environ['GRASS_DB_ENCODING']
                 if enc:
-                    sqlFile.file.write(sql.encode(enc) + ';')
+                    sqlFile.write(sql.encode(enc) + ';')
                 else:
-                    sqlFile.file.write(sql + ';')
-                sqlFile.file.write(os.linesep)
-                sqlFile.file.flush()
+                    sqlFile.write(sql + ';')
+                sqlFile.write(os.linesep)
+                sqlFile.close()
 
             driver   = self.dbMgrData['mapDBInfo'].layers[self.selLayer]["driver"]
             database = self.dbMgrData['mapDBInfo'].layers[self.selLayer]["database"]
@@ -835,10 +836,12 @@ class DbMgrNotebookBase(FN.FlatNotebook):
             
             RunCommand('db.execute',
                        parent = self,
-                       input = sqlFile.name,
+                       input = sqlFilePath,
                        driver = driver,
                        database = database)
             
+            os.close(fd)
+            os.remove(sqlFilePath)
             # reset list of statements
             listOfSQLStatements = []