Как вывести таблицу ms sql через PySimpleGUI в отдельном окне?
у меня такой код
# импрорт
import PySimpleGUI as sg
import pyodbc
from datetime import datetime
import re
import pandas
#настройки
connection = pyodbc.connect(("Driver={ODBC Driver 17 for SQL Server};Server=MGP5-SPG04;Database=Test1;Trusted_Connection=yes;UID=sa;PWD=111qqqAAA"))
dbCursor = connection.cursor()
sg.theme('dark grey 9')
now = datetime.now()
Datatime = datetime.now()
print(datetime.now())
#Проверка на спец символ
def detect_special_characer(pass_string):
regex= re.compile('[@_!#$%^&*()<>?/\|}{~:]')
if(regex.search(pass_string) == None):
res = False
else:
res = True
return(res)
#получение списка товаров
def UpdateList(sql):
dbCursor.execute(sql)
data = dbCursor.fetchall()
new_list = []
for word in data:
new_str = ''
for w in word:
if detect_special_characer(w)==False:
new_str += w
new_list.append(new_str)
new_str = ','.join(w for w in new_list if w)
for i in range(len(new_list)):
new_list[i]=new_list[i].lower()
return new_list
#TovarANDCount=[]
#for i in range(len(UpdateList("Tovar"))):
#TovarANDCount.append(UpdateList("Tovar")[i],UpdateList("Count")[i])
#print(UpdateList("Count"))
print(pandas.read_sql_query( "SELECT top 100 * FROM [dbo].[BazaMSK]"))#пробоую так
#интерфейс
layout = [
[sg.Text('Введите товар'),sg.Combo(UpdateList('Select Tovar from BazaMSK'), size=(30,15), key='-KTovar1-'),sg.Text('Введите производителя'),sg.Combo(UpdateList('EXEC [dbo].[Proiz_Select]'), size=(30,15), key='-KProiz-')],
[sg.Text('Количество товара'),sg.InputText(size=(8,3),key='-KCountTovar-')],
[sg.Output(size=(88, 20),key="-KInputText-")],
[sg.Submit("Сохранить"), sg.Submit("Обновить")]
]
window = sg.Window('Поставки', layout)
event, values = window.read()
while event not in (None,"Exit"):
event, values = window.read()
if event == "Сохранить":
sql = 'EXEC [dbo].[BazaMSKInsert] @Tovar=?,@Count=?,@Data=?,@IdProiz=?'
params = (values['-KTovar1-'], values['-KCountTovar-'], Datatime, (values['-KProiz-'].split())[1])
dbCursor.execute(sql, params)
dbCursor.commit()
print("Добвленно",values['-KCountTovar-'], values['-KTovar1-'],"в",(values['-KProiz-'].split())[0])
if event == "Обновить":
window['-KTovar1-'].update(values=UpdateList('Select Tovar from BazaMSK'))
window['-KProiz-'].update(values=UpdateList('EXEC [dbo].[Proiz_Select]'))
print("Обновляем данные,", datetime.now())
print(UpdateList('EXEC [dbo].[BazaMSK_Select]'))
попробывал так print(pandas.read_sql_query("SELECT top 100 * FROM [dbo].[BazaMSK]")), не работает
Подскажите как это делать(таблицу типо exel). Думаю как-то так
layout1 = [....]
window = sg.Window('Таблица поставок', layout1)
event1, values1 = window.read()