dikkini

Untitled

Jan 24th, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.02 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. import wx
  4. import cx_Oracle
  5. ###########################################################################
  6. ## Class db_data
  7. ###########################################################################
  8.  
  9. class connectDB ( wx.Frame ):
  10.    
  11.     def __init__( self, parentMain ):
  12.         wx.Frame.__init__ ( self, parent=None, id = wx.ID_ANY, title = u"Data Quality -- Подсоединение к базе данных", pos = wx.DefaultPosition, size = wx.Size( 135,400 ), style = wx.CAPTION|wx.RESIZE_BORDER|wx.STAY_ON_TOP|wx.TAB_TRAVERSAL )
  13.        
  14.         self.dbdata = None
  15.        
  16.         self.main = parentMain
  17.        
  18.         self.SetSizeHintsSz( wx.Size( 135,400 ), wx.Size( 135,400 ) )
  19.        
  20.         sizer1 = wx.BoxSizer( wx.VERTICAL )
  21.        
  22.         self.panel = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
  23.         sizer2 = wx.BoxSizer( wx.VERTICAL )
  24.        
  25.         self.m_staticText12 = wx.StaticText( self.panel, wx.ID_ANY, u"IP адрес", wx.DefaultPosition, wx.DefaultSize, 0 )
  26.         self.m_staticText12.Wrap( -1 )
  27.         sizer2.Add( self.m_staticText12, 0, wx.ALL, 5 )
  28.        
  29.         self.ip = wx.TextCtrl( self.panel, wx.ID_ANY, '192.168.56.101', wx.DefaultPosition, wx.DefaultSize, 0 )
  30.         sizer2.Add( self.ip, 0, wx.ALL|wx.EXPAND, 5 )
  31.        
  32.         self.m_staticText13 = wx.StaticText( self.panel, wx.ID_ANY, u"Port", wx.DefaultPosition, wx.DefaultSize, 0 )
  33.         self.m_staticText13.Wrap( -1 )
  34.         sizer2.Add( self.m_staticText13, 0, wx.ALL, 5 )
  35.        
  36.         self.port = wx.TextCtrl( self.panel, wx.ID_ANY, '1521', wx.DefaultPosition, wx.DefaultSize, 0 )
  37.         sizer2.Add( self.port, 0, wx.ALL|wx.EXPAND, 5 )
  38.        
  39.         self.m_staticText14 = wx.StaticText( self.panel, wx.ID_ANY, u"SID", wx.DefaultPosition, wx.DefaultSize, 0 )
  40.         self.m_staticText14.Wrap( -1 )
  41.         sizer2.Add( self.m_staticText14, 0, wx.ALL, 5 )
  42.        
  43.         self.sid = wx.TextCtrl( self.panel, wx.ID_ANY, 'orcl', wx.DefaultPosition, wx.DefaultSize, 0 )
  44.         sizer2.Add( self.sid, 0, wx.ALL|wx.EXPAND, 5 )
  45.        
  46.         self.m_staticText15 = wx.StaticText( self.panel, wx.ID_ANY, u"Login", wx.DefaultPosition, wx.DefaultSize, 0 )
  47.         self.m_staticText15.Wrap( -1 )
  48.         sizer2.Add( self.m_staticText15, 0, wx.ALL, 5 )
  49.        
  50.         self.login = wx.TextCtrl( self.panel, wx.ID_ANY, 'ARTUR', wx.DefaultPosition, wx.DefaultSize, 0 )
  51.         sizer2.Add( self.login, 0, wx.ALL|wx.EXPAND, 5 )
  52.        
  53.         self.m_staticText16 = wx.StaticText( self.panel, wx.ID_ANY, u"Password", wx.DefaultPosition, wx.DefaultSize, 0 )
  54.         self.m_staticText16.Wrap( -1 )
  55.         sizer2.Add( self.m_staticText16, 0, wx.ALL, 5 )
  56.        
  57.         self.passw = wx.TextCtrl( self.panel, wx.ID_ANY, '123', wx.DefaultPosition, wx.DefaultSize, 0 )
  58.         sizer2.Add( self.passw, 0, wx.ALL|wx.EXPAND, 5 )
  59.        
  60.         self.connect = wx.Button( self.panel, wx.ID_OK, u"Connect", wx.DefaultPosition, wx.DefaultSize, 0 )
  61.         sizer2.Add( self.connect, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
  62.        
  63.         self.cancel = wx.Button( self.panel, wx.ID_CANCEL, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 )
  64.         sizer2.Add( self.cancel, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
  65.        
  66.         self.panel.SetSizer( sizer2 )
  67.         self.panel.Layout()
  68.         sizer2.Fit( self.panel )
  69.         sizer1.Add( self.panel, 1, wx.EXPAND |wx.ALL, 5 )
  70.        
  71.         self.SetSizer( sizer1 )
  72.         self.Layout()
  73.        
  74.         self.Centre( wx.BOTH )
  75.    
  76.         self.Bind(wx.EVT_BUTTON, self.OnConnectBtn, self.connect)
  77.         self.connect.SetDefault()
  78.        
  79.         self.Bind(wx.EVT_BUTTON, self.OnCancelBtn, self.cancel)
  80.        
  81.        
  82.     def OnConnectBtn(self, event):
  83.         self.main.menubar.Enable(1, not self.main.enabledConnect)
  84.         self.ip = self.ip.GetValue()
  85.         self.port = self.port.GetValue()
  86.         self.login = self.login.GetValue()
  87.         self.sid = self.sid.GetValue()
  88.         self.passw = self.passw.GetValue()
  89.        
  90.         self.dbdata = [self.ip, self.port, self.sid, self.login, self.passw]
  91.         self.main.dbdat = self.dbdata
  92.         self.main.statusbar.SetStatusText(u'Выполнено подключение к базе')
  93.         try:
  94.             self.dsn_tns = cx_Oracle.makedsn(self.dbdata[0], self.dbdata[1], self.dbdata[2])
  95.             self.connection = cx_Oracle.connect(self.dbdata[3], self.dbdata[4], self.dsn_tns)
  96.         except (cx_Oracle.DatabaseError, cx_Oracle.DataError), info:
  97.             print info
  98.         try:
  99.             self.main.connection0 = self.connection
  100.             self.main.connection1 = self.connection
  101.             self.main.schema = self.login
  102.         except AttributeError, info:
  103.             error = u'Подключение к базе не удалось'
  104.             wx.MessageBox(error)
  105.         self.Close()
  106.        
  107.     def OnCancelBtn(self, event):
  108.         self.Destroy()
  109.        
  110.     def __del__( self ):
  111.         pass
Advertisement
Add Comment
Please, Sign In to add comment