NamePropertySearch/NamePropertySearch.py
Dennis Kerschus 513aba2a49 h
2022-10-03 12:56:48 +02:00

53 lines
2.3 KiB
Python

import pyodbc
from pathlib import Path
cnxn=pyodbc.connect('driver={sql server};server=bi-dsa-udv\dsa')
p=Path('F:/Users/admindenker/TFS Workspace/Datavarehus')
def traverseDirectory(x):
if (x.name=='obj' or x.name.strip()=='DataPresentationArea' or x.name=='FastTrack' or x.name=='Undervisning' or x.name=='Udvikling'):
# print(x.name)
return
[checkFile(z) for z in x.iterdir() if z.is_file and z.name.endswith('.dtsx')]
[traverseDirectory(y) for y in x.iterdir() if y.is_dir()]
def checkFile(file):
f=open(file,"r", encoding='utf-8')
for x in f:
if(x.find("DTS:ObjectName")>-1):
propertyNameTokens=x.split('=')
count=0
propertyNameToken=None
while count < len(propertyNameTokens):
if(propertyNameTokens[count].find("DTS:ObjectName")>-1):
propertyNameToken=propertyNameTokens[count+1].split('"')[1]
break
count+=2
if(propertyNameToken==None):
print(f"propertyNameToken findes ikke i {file.name}")
continue
if(file.stem!=propertyNameToken):
ssisproject=[a for a in file.parts if a.find("SSIS_")>-1]
if(len(ssisproject)>0):
#insertOrUpdateTable(ssisproject[0],str(file.parent),str(file.stem),propertyNameToken)
insertIntoTable(ssisproject[0],str(file.parent),str(file.stem),propertyNameToken)
print(ssisproject[0] + ' ' + str(file.parent) + ' ' + file.stem + ' ' + propertyNameToken)
print(x)
break
else:
continue
f.close()
def insertIntoTable(ssisproject,tfspath,packagename,packagenameproperty):
curser.execute("insert into [UDV_denker].[dbo].[ssispackages](SSISProject,tfspath,PackageName,PackageNameProperty,ITPUpdate,ITUUpdate) values (?,?,?,?,?,?)",(ssisproject,tfspath,packagename,packagenameproperty,0,0))
def insertOrUpdateTable(ssisproject,tfspath,packagename,packagenameproperty):
return
def updateTableIndex():
curser.execute("select id,tfspath from [UDV_denker].[dbo].[ssispackages]")
return
curser=cnxn.cursor()
updateTableIndex()
[traverseDirectory(x) for x in p.iterdir() if x.is_dir()]
cnxn.commit()
cnxn.close()