pill
schemas = Get_DB_Schemas(connection)
При такой строчке, он ругается что переменная коннектион не объявлена.
вот функция возвращающая коннектион
def OpenDB(dblogin,dbpass,dbtns):
try:
import cx_Oracle
print "Import OK"
except ImportError,info:
print "Import Error:", info
sys.exit()
if cx_Oracle.version<'3.0':
print "Very old version of cx_Oracle :", cx_Oracle.version
sys.exit()
try:
connection = cx_Oracle.connect("%s/%s@%s" % (dblogin, dbpass, dbtns))
print "Connection OK"
except ImportError, info:
print "Import Error: ", info
return connection
Переменные dblogin, dbpass, dbtns получаются в другом файле(3.py) из окошек ввода TextCtrl при нажатии на кнопку, вот код:
class frame_pass(wx.Frame):
def __init__(self):
global passwTxt, loginTxt, tnsTxt
wx.Frame.__init__(self, None, -1, 'Text Entry Example',
size=(250, 150))
panel = wx.Panel(self, -1)
login = wx.StaticText(panel, -1, "Login:")
loginTxt = wx.TextCtrl(panel, -1, "",
size=(175, -1))
tns = wx.StaticText(panel, -1, "TNS:")
tnsTxt = wx.TextCtrl(panel, -1, "",
size=(175, -1))
loginTxt.SetInsertionPoint(0)
passw = wx.StaticText(panel, -1, "Password:")
passwTxt = wx.TextCtrl(panel, -1, "", size=(175, -1),
style=wx.TE_PASSWORD)
sizer = wx.FlexGridSizer(cols=2, hgap=6, vgap=6)
sizer.AddMany([login, loginTxt, tns, tnsTxt, passw, passwTxt])
panel.SetSizer(sizer)
self.ConnectBtn = wx.Button(panel, -1, "Connect", pos=(40, 100))
self.Bind(wx.EVT_BUTTON, self.OnConnectBtn, self.ConnectBtn)
self.ConnectBtn.SetDefault()
self.CancelBtn = wx.Button(panel, -1, "Cancel", pos=(135, 100))
self.Bind(wx.EVT_BUTTON, self.OnCancelBtn, self.CancelBtn)
def OnConnectBtn(self, event):
global connection
dblogin = loginTxt.GetValue()
dbpass = passwTxt.GetValue()
dbtns = tnsTxt.GetValue()
connection = unit_database.OpenDB(dblogin, dbpass, dbtns)
self.Destroy()
def OnCancelBtn(self, event):
self.Destroy()