python cx_oracle читает результат запроса из графического интерфейса - PullRequest
0 голосов
/ 08 июня 2018

У меня есть код Python, который создает графический интерфейс, где я делаю запрос с помощью курсора (= curs), запрашивающего у пользователя ввести серийный номер.Согласно этому номеру таблица оракула возвращает результат (т.е. 1111111).После этого мне нужен второй запрос из другой таблицы: «выберите имя_проекта из customer_desc, где customer_name_d = значение в поле клиента (= 1111111)».Есть идеи?Мне нужно сделать новое подключение к базе?Как я могу установить предложение where для чтения текстового значения, возвращаемого в текстовое поле GUI, со скрытыми переменными?Спасибо

   import cx_Oracle
   from tkinter import*
   from tkinter import messagebox

   def search():
   try:

    connstr='SOLVATIO/SOLVATIO@localhost'
    conn = cx_Oracle.connect(connstr)
    curs = conn.cursor()
    curs.execute("select * from customers where afm='%s'"%afm.get())
    result=curs.fetchone()
    company_name.set(result[1])
    e1.configure(state='disabled')
    conn.close()

    def clear():
   afm.set('')
   company_name.set('')
   e1.configure(state='normal')

   a1=Tk()
   a1.title('SOLVATIO')
   a1.geometry('600x300')
   ptitle=Label(a1, text='''search asset''')
   ptitle.grid(row=0, column=0, columnspan=2)

   afm=StringVar()
   company_name=StringVar()
   l1=Label (a1, text=' AFM ')
   e1=Entry(a1, textvariable=afm)
   l2=Label (a1, text=' customer ')
   e2=Entry(a1, textvariable=company_name)
   b1=Button(a1, text=' Search ', command=search)
   l1.grid(row=1, column=0)
   e1.grid(row=1, column=1)
   l2.grid(row=2, column=0)
   e2.grid(row=2, column=1)
   b1.grid(row=1, column=2)
   a1.mainloop()

1 Ответ

0 голосов
/ 10 июня 2018

Ты большую часть пути туда.Чтобы использовать переменные связывания, вам нужно сделать следующее:

curs.execute("select * from customers where afm=:1", [afm.get()])

Остальная часть вашего кода работала как есть.

...