Привет!
Прошу сразу не называть меня идиотом, ибо я просто новичок в питоне и в программирование в целом.
Возможно вопрос покажется глупым, но все же очень прошу помощи.

Вопрос:
Пытаюсь написать окно регистрации в БД Firebird. Путем гугл и изучения книги PyQt имею такой код, в котором разобрался как смог:

#-*-coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, QtSql
import sys
import kinterbasdb
class LoginWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.lineEditName = QtGui.QLineEdit()
        self.lineEditDbase = QtGui.QLineEdit()
        self.lineEditPass = QtGui.QLineEdit()
        self.lineEditIp = QtGui.QLineEdit()
        self.lineEditPass.setEchoMode(2)  
        self.buttonOk = QtGui.QPushButton("Ok")              
        self.hbox = QtGui.QHBoxLayout()
        self.hbox.addWidget(self.buttonOk)
        self.form =QtGui.QFormLayout()
        self.form.addRow("Login:", self.lineEditName)
        self.form.addRow("Pass:", self.lineEditPass)
        self.form.addRow("BD:", self.lineEditDbase)
        self.form.addRow("Ip:", self.lineEditIp)
        self.form.addRow(self.hbox)
        self.setLayout(self.form)
        self.lineEditPass.setFocus()
        
        self.buttonOk.clicked.connect(self.on_Ok)
    def on_Ok(self):
       
        
        host = "192.168.1.88:E:\BD\BD1.FDB"
        BDUSER = "XXXX"
        BDPASSWORD = "XXX" 
        #raw_input ("password   ")
        con = kinterbasdb.connect(dsn=host,user=BDUSER,password=BDPASSWORD)
        cur = con.cursor()
        cur.execute('SELECT* FROM TABLE1')
        for row in cur:
            print 'ID', row[0]
            print 'NAME', row[1]
        
        
#Окно для подтверждения закрытия       
    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
app = QtGui.QApplication(sys.argv)
win = LoginWindow()
win.show()              
sys.exit(app.exec_())


Вопрос 1: как организовать проверку логина и пароля БД? Я так понял нужно присвоить значения поля соответствующей переменой. Но как это сделать не могу нагуглить.

Вопрос 2: При неправильном вводе логин\пароль или путь до бд, будут выдаваться ошибки, как эти ошибки разделить и обозначить пользователю?

Вопрос 3: По какой то причине, если я вставляю кнопку “Cancel” и задаю на него подтверждения закрытия, кнопка “Ok” перестает работать. Что это может быть.


Если можно приведите пример кода, или хотя бы дайте ссылку где посмотреть. Заранее спасибо.