diff --git a/AdjustDate.py b/AdjustDate.py old mode 100755 new mode 100644 diff --git a/CompareDBs.py b/CompareDBs.py old mode 100755 new mode 100644 diff --git a/DeleteAllData.py b/DeleteAllData.py old mode 100755 new mode 100644 diff --git a/DenormaliseDB.py b/DenormaliseDB.py old mode 100755 new mode 100644 diff --git a/DropItemForeignKeys.py b/DropItemForeignKeys.py old mode 100755 new mode 100644 diff --git a/NVPX2RQDA.py b/NVPX2RQDA.py old mode 100755 new mode 100644 diff --git a/NVivo database structure notes.txt b/NVivo database structure notes.txt old mode 100755 new mode 100644 diff --git a/NVivo.py b/NVivo.py index 235f647..eacf0e0 100644 --- a/NVivo.py +++ b/NVivo.py @@ -661,8 +661,10 @@ def Normalise(args): nvivoBlobStorage.c.Object if nvivoBlobStorage is not None else nvivoSource.c.Object, nvivoSource.c.PlainText, nvivoSource.c.MetaData, - nvivoSource.c.ThumbnailLocation if args.nvivoversion == '12' else nvivoSource.c.Thumbnail, - nvivoSource.c.WaveformLocation if args.nvivoversion == '12' else nvivoSource.c.Waveform, + # nvivoSource.c.ThumbnailLocation if args.nvivoversion in '12' else nvivoSource.c.Thumbnail, + nvivoSource.c.Thumbnail, + # nvivoSource.c.WaveformLocation if args.nvivoversion == '12' else nvivoSource.c.Waveform, + nvivoSource.c.Waveform, nvivoItem.c.TypeId.label('SourceType'), nvivoItem.c.CreatedBy, nvivoItem.c.CreatedDate, @@ -845,7 +847,7 @@ def build_tagging_or_annotation(item): if item['StartX'] is not None and item['LengthX'] is not None: item['Fragment'] += str(item['StartX']+1) + ':' + str(item['StartX'] + item['LengthX']); if item['StartY'] is not None: - item['Fragment'] += ',' + str(item['StartY']+1) + item['Fragment'] += ',' + str(item['StartY']) if item['LengthY'] > 0: item['Fragment'] += ':' + str(item['StartY'] + item['LengthY']) @@ -879,7 +881,7 @@ def build_tagging_or_annotation(item): #nvivoNodeReference.c.ReferenceTypeId == literal_column('0'), nvivoItem.c.Id == nvivoNodeReference.c.Node_Item_Id, nvivoItem.c.TypeId == literal_column(NVivo.ItemType.Node), - nvivoNodeReference.c.StartZ.is_(None) + #nvivoNodeReference.c.StartZ.is_(None) )))] for tagging in taggings: build_tagging_or_annotation(tagging) @@ -901,13 +903,13 @@ def build_tagging_or_annotation(item): nvivoAnnotation.c.CreatedDate, nvivoAnnotation.c.ModifiedBy, nvivoAnnotation.c.ModifiedDate - ] + [ + ] + ([ nvivoAnnotation.c.StartText, nvivoAnnotation.c.LengthText ] if args.mac else [ nvivoAnnotation.c.StartX, nvivoAnnotation.c.LengthX - ]))] + ])))] for annotation in annotations: annotation['Node'] = None diff --git a/NVivo2RQDADB.py b/NVivo2RQDADB.py old mode 100755 new mode 100644 diff --git a/Norm2RQDA.py b/Norm2RQDA.py old mode 100755 new mode 100644 diff --git a/NormaliseDB.py b/NormaliseDB.py old mode 100755 new mode 100644 diff --git a/NormaliseNVP.py b/NormaliseNVP.py old mode 100755 new mode 100644 index d3b4c52..9c660ff --- a/NormaliseNVP.py +++ b/NormaliseNVP.py @@ -31,8 +31,8 @@ def NormaliseNVP(arglist): parser.add_argument('-v', '--verbosity', type=int, default=1) - parser.add_argument('-nv', '--nvivoversion', choices=["10", "11"], default="10", - help='NVivo version (10 or 11)') + parser.add_argument('-nv', '--nvivoversion', choices=["10", "11", "12"], default="10", + help='NVivo version (10 or 11 or 12)') parser.add_argument('-S', '--server', type=str, help="IP address/name of Microsoft SQL Server") @@ -40,6 +40,8 @@ def NormaliseNVP(arglist): help="Port of Microsoft SQL Server") parser.add_argument('-i', '--instance', type=str, help="Microsoft SQL Server instance") + parser.add_argument('-d', '--drop', choices=["keep", "drop"], default="drop", + help='Drop attached NVivo SQL Server Database') parser.add_argument('-u', '--users', choices=["skip", "merge", "overwrite", "replace"], default="merge", help='User action.') @@ -98,7 +100,7 @@ def executecommand(command): instanceversion = regquerydata[2].split('.')[0] if args.verbosity >= 2: print("Found SQL server instance " + instancename + " version " + instanceversion, file=sys.stderr) - if (args.nvivoversion == '10' and instanceversion == 'MSSQL10_50') or (args.nvivoversion == '11' and instanceversion == 'MSSQL12'): + if (args.nvivoversion == '10' and instanceversion == 'MSSQL10_50') or (args.nvivoversion == '11' and instanceversion == 'MSSQL12') or (args.nvivoversion == '12' and instanceversion == 'MSSQL14'): args.instance = instancename break else: @@ -114,14 +116,20 @@ def executecommand(command): if args.verbosity > 0: print("Using port: " + str(args.port), file=sys.stderr) + if args.nvivoversion == '11': + version = 'MSSQL12' + elif args.nvivoversion == '12': + version = 'MSSQL14' + else: + version = 'MSQL10_50' mssqlapi = mssqlAPI(args.server, args.port, args.instance, - version = ('MSSQL12' if args.nvivoversion == '11' else 'MSSQL10_50'), + version = version, verbosity = args.verbosity) # Get reasonably distinct yet recognisable DB name - dbname = 'nvivo' + str(os.getpid()) + dbname = 'nvivo' + str(os.getpid()) + '_' + args.infile.rsplit('\\', 1)[-1].rsplit('/', 1)[-1].rsplit('.', 1)[0].strip() mssqlapi.attach(args.infile, dbname) try: @@ -136,7 +144,11 @@ def executecommand(command): raise finally: - mssqlapi.drop(dbname) + if args.drop == 'drop': + mssqlapi.drop(dbname) + print(f"Drop database {dbname}") + else: + print(f"Keep database {dbname}") if __name__ == '__main__': NormaliseNVP(None) diff --git a/NormaliseNVPX.py b/NormaliseNVPX.py old mode 100755 new mode 100644 diff --git a/NormaliseOpenQDA.py b/NormaliseOpenQDA.py old mode 100755 new mode 100644 diff --git a/RQDA2NVPX.py b/RQDA2NVPX.py old mode 100755 new mode 100644 diff --git a/RQDA2NVivoDB.py b/RQDA2NVivoDB.py old mode 100755 new mode 100644 diff --git a/RQDA2Norm.py b/RQDA2Norm.py old mode 100755 new mode 100644 diff --git a/Subtract.py b/Subtract.py old mode 100755 new mode 100644 diff --git a/Translate.py b/Translate.py old mode 100755 new mode 100644 diff --git a/editNode.py b/editNode.py old mode 100755 new mode 100644 diff --git a/editNodeAttribute.py b/editNodeAttribute.py old mode 100755 new mode 100644 diff --git a/editNodeCategory.py b/editNodeCategory.py old mode 100755 new mode 100644 diff --git a/editProject.py b/editProject.py old mode 100755 new mode 100644 diff --git a/editSource.py b/editSource.py old mode 100755 new mode 100644 diff --git a/editSourceAttribute.py b/editSourceAttribute.py old mode 100755 new mode 100644 diff --git a/editSourceCategory.py b/editSourceCategory.py old mode 100755 new mode 100644 diff --git a/editTagging.py b/editTagging.py old mode 100755 new mode 100644 diff --git a/editUser.py b/editUser.py old mode 100755 new mode 100644 diff --git a/extractTagging.py b/extractTagging.py old mode 100755 new mode 100644 diff --git a/helpers/mssqlAttach.bat b/helpers/mssqlAttach.bat old mode 100755 new mode 100644 diff --git a/helpers/mssqlCreate.bat b/helpers/mssqlCreate.bat old mode 100755 new mode 100644 diff --git a/helpers/mssqlSave.bat b/helpers/mssqlSave.bat old mode 100755 new mode 100644 diff --git a/helpers/sqlanyenv.sh b/helpers/sqlanyenv.sh old mode 100755 new mode 100644 diff --git a/helpers/sqlanysrv.sh b/helpers/sqlanysrv.sh old mode 100755 new mode 100644 diff --git a/helpers/unoconv b/helpers/unoconv old mode 100755 new mode 100644 diff --git a/mssqlAttach.py b/mssqlAttach.py old mode 100755 new mode 100644 diff --git a/mssqlCreate.py b/mssqlCreate.py old mode 100755 new mode 100644 diff --git a/mssqlDrop.py b/mssqlDrop.py old mode 100755 new mode 100644 diff --git a/mssqlList.py b/mssqlList.py old mode 100755 new mode 100644 diff --git a/mssqlSave.py b/mssqlSave.py old mode 100755 new mode 100644 diff --git a/nvpn2bqda.py b/nvpn2bqda.py old mode 100755 new mode 100644 diff --git a/nvpn2nvp.py b/nvpn2nvp.py old mode 100755 new mode 100644 diff --git a/nvpn2nvpx.py b/nvpn2nvpx.py old mode 100755 new mode 100644 diff --git a/querySource.py b/querySource.py old mode 100755 new mode 100644 diff --git a/queryTagging.py b/queryTagging.py old mode 100755 new mode 100644 diff --git a/regressionTest.sh b/regressionTest.sh old mode 100755 new mode 100644 diff --git a/saveSources.py b/saveSources.py old mode 100755 new mode 100644 diff --git a/tagNounPhrases.py b/tagNounPhrases.py old mode 100755 new mode 100644 diff --git a/tagSpeakers.py b/tagSpeakers.py old mode 100755 new mode 100644