我有一段python代码,它创建了一个gui,我在其中使用游标(=curs)进行查询,要求用户输入序列号。根据这个数字,oracle表返回一个结果(即1111111)。之后,我希望从另一个表中执行第二个查询:‘select project_name from customer_desc where customer_name_d= the value in the customer box(=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()
发布于 2018-06-10 06:05:09
你已经走了很远了。要使用绑定变量,您需要执行以下操作:
curs.execute("select * from customers where afm=:1", [afm.get()])
您的其余代码按原样工作。
https://stackoverflow.com/questions/50764736
复制相似问题