Форум сайта python.su
Друзья помогите написать правильно цикл !
Есть список патчей SQL
service_pack_folder = D:\python\smscripts\t7\servicepack
c = 'patch0001.sql', 'patch0002.sql', 'patch0003.sql', 'patch0004.sql'
for file_list_import in c: print("Executing Patch: " + file_list_import + " Now") sql_cmd = ['sqlcmd', '-I', '-b', '-V', '10', '-S', server, '-d', database, '-U', username, '-P', password, '-i', service_pack_folder + "/" + file_list_import] process = subprocess.run(sql_cmd, encoding="utf-8")
tsql = "UPDATE PatchNumber SET LatestPatchNumber = ?, Date = ? WHERE Id = 3;"
with cursor.execute(tsql, latest_patch, formatted_date):
print ('Successfully Updated Patch Table!')
Отредактировано vitk (Ноя. 17, 2019 13:13:57)
Офлайн
import subprocess code = subprocess.call("notepad.exe") if code == 0: print("Success!") else: print("Error!")
Офлайн
AD0DE412Спасибо уже делаю с проверкой на 0
file_list_import= 'patch0001.sql', 'patch0002.sql', 'patch0003.sql', 'patch0004.sql' sql_cmd = ['sqlcmd', '-I', '-b', '-V', '10', '-S', server, '-d', database, '-U', username, '-P', password, '-i', service_pack_folder + "/" + file_list_import] code = subprocess.call(sql_cmd, encoding="utf-8") if code == 0: print("Success!") else: print("Error!")
else: print("Error!")
Отредактировано vitk (Ноя. 17, 2019 16:52:13)
Офлайн
ну такое …
file_list_import= ['patch0001.sql', 'patch0002.sql', 'patch0003.sql', 'patch0004.sql'] sql_cmd = ['sqlcmd', '-I', '-b', '-V', '10', '-S', server, '-d', database, '-U', username, '-P', password, '-i', service_pack_folder] for i in file_list_import: code = subprocess.call(sql_cmd + ["/" + i] , encoding="utf-8") if code == 0: print("Success!") else: print("Error!")
Офлайн
AD0DE412Спасибо что помагаете !
ну такое …
Офлайн
vitk
import pyodbc import datetime import configparser import os import time from threading import Thread import subprocess config = configparser.ConfigParser() config.read('test_py.ini') database = config["DATABASE_PY"]["database"] username = config["DATABASE_PY"]["username"] password = config["DATABASE_PY"]["password"] server = config["DATABASE_PY"]["server"] service_pack_folder = config["FLDER_PATCH"]["service_pack_dir"] cnxn_SiteConfigDB = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) cursor = cnxn_SiteConfigDB.cursor() date = datetime.datetime.now() formatted_date = date.strftime('%Y-%m-%d %H:%M:%S') print(formatted_date) print('All patches in directory') file_list = os.listdir(service_pack_folder) def last_4chars(x): return(x[-4:]) sorted(file_list, key = last_4chars) print(file_list) latest_patch = file_list.pop() print('Show latest patch number in folder') #file_patch_number = (latest_patch.translate({ord(i): None for i in 'patch.sql'})) #print(file_patch_number) print(latest_patch) tsql2 = "SELECT TOP 1 LatestPatchNumber FROM PatchNumber ORDER BY LatestPatchNumber DESC;" with cursor.execute(tsql2): MaxNum, = cursor.fetchone() print('Show max patch number from SQL table') print(MaxNum) #if MaxNum == latest_patch: # print("Equal") #else: # tsql = "UPDATE PatchNumber SET LatestPatchNumber = ?, Date = ? WHERE Id = 3;" # with cursor.execute(tsql, latest_patch, formatted_date): # print ('Successfully Updated Patch Table!') if MaxNum == latest_patch: print("Equal") else: file_list2 = os.listdir(service_pack_folder) def last_4chars(x): return (x[-4:]) sorted(file_list2, key=last_4chars) print(file_list2) a = file_list2 a.index(MaxNum) b = a[a.index(MaxNum):] c = (b[1:]) print(c) for file_list_import in c: print("Executing Patch: " + file_list_import + " Now") sql_cmd = ['sqlcmd', '-I', '-b', '-V', '10', '-S', server, '-d', database, '-U', username, '-P', password, '-i', service_pack_folder + "/" + file_list_import] process = subprocess.call(sql_cmd, encoding="utf-8") if process == 0: print("success") tsql = "UPDATE PatchNumber SET LatestPatchNumber = ?, Date = ? WHERE Id = 1;" with cursor.execute(tsql, file_list_import, formatted_date): print ('Successfully Updated Patch Table!') else: print("Error patch file: " + file_list_import + " Exit") break
Отредактировано vitk (Ноя. 18, 2019 11:46:11)
Офлайн
vitkок вот есчё раз ссылка на стандартную библиотеку там есть примеры итд итп
Я не пойму как мне сделать модулем, то что я сейчас пытаюсь сделать, Можете пример показать какойто ?
vitkнезаче (= … такое …
Спасибо что помагаете !
Отредактировано AD0DE412 (Ноя. 18, 2019 18:41:06)
Офлайн