2015-07-02 4 views
0

Я пишу программу, которая должна подключаться к серверу, проверять наличие БД и искать определенную таблицу (и количество элементов в этих таблицах) m, используя Tkinter для GUI. Проблема заключается в том, что когда я пытаюсь ее использовать, у меня есть ошибка «TypeError:« Tk »Object не вызываемый». Программа работала, но это уже не так, есть ли у вас какие-либо идеи по этому поводу? (Не беспокойтесь о странных именах, я сделал это так, я уверен, что нет никаких проблем, как и переменные, имеющих такое же имя, как функция или так)TypeError: «Tk» Объект не может быть вызван

import pyodbc 
import sys 
from tkinter import * 

#wrote down variables here so I remembered them 
username = '' 
password = '' 
server_name = '' 
database = '' 
table = 'véhicules' 
nom_instance = '' 
total = '' 
nb_vehic = '' 
master = Tk() 

Label(master,text="What is the username ?").pack() 
yzx = Entry(master) 
yzx.pack() 
username = yzx.get() 
yzx.delete(0, END) 

Label(master,text="What is this user's password?").pack() 
yxz = Entry(master) 
yxz.pack() 
password = yxz.get() 
yxz.delete(0, END) 

Label(master, text="What is this server's IP adress ?").pack() 
zyx = Entry(master) 
zyx.pack() 
server_name = zyx.get() 
zyx.delete(0, END) 

Label(master, text="which authority do you want to connect to ?").pack() #not sure about the traduction of this word, original is instance in french 
xyz = Entry(master) 
xyz.pack() 
nom_instance=xyz.get() 
xyz.delete(0, END) 


def surelydoesntexist(): 
    connexion = "DRIVER={SQL Server};SERVER="+server_name+"\\"+nom_instance+";Database=master;User Id="+username+";Password="+password #peut être ajouter Trusted_Connection=yes 
#at this point, connect to the server and looks for the different DBs 
    connect = pyodbc.connect(connexion) 
    cursor = connect.cursor() 

    for db in cursor.execute("select * from sys.databases"): 
     try: 
      connexion = ("DRIVER={SQL Server};SERVER="+server_name+"\\"+nom_instance+";DATABASE="+db.name+";User Id="+username+";Password="+password) 
      print ('%s ' % connexion) 
      connect = pyodbc.connect(connexion) 
      cursor = connect.cursor() 
      cursor.execute("select count(*) from véhicules") 
      row = cursor.fetchone() 
      nb_vehic = row.user_count 
      print ('%d items in this db' % row.user_count) 
      total = total + int(nb_vehic) 
     except: # catch *all* exceptions 
      e = sys.exc_info()[0] 
      print("Error: %s" % e) 

but = Button(master, text="Connect !", command=surelydoesntexist).pack() 

master() 
+0

Какое имя вашего файла? –

+0

Имя файла - TestPing.py – Snaw

ответ

2

Вашего кода совершенно нормален, за исключением до последней строки:

Вместо master() вам необходимо написать master.mainloop(), и все должно быть хорошо.


Примечание: Я проверил это, но я должен был сделать раскомментируйте import pyodbc, фикция surelydoesntexist и кнопка but, потому что я вообще ни имею необходимые пакеты, ни какое-либо подключение к разъединять.

Смежные вопросы