summaryrefslogtreecommitdiffstats
path: root/examples/SQL/dbconnect.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/SQL/dbconnect.py')
-rwxr-xr-xexamples/SQL/dbconnect.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/examples/SQL/dbconnect.py b/examples/SQL/dbconnect.py
new file mode 100755
index 0000000..d1c1baf
--- /dev/null
+++ b/examples/SQL/dbconnect.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+
+import sys
+from python_tqt.qt import *
+from python_tqt.qtsql import *
+
+from frmconnect import frmConnect
+from dbpar import *
+
+TRUE = 1
+FALSE = 0
+
+def createConnection():
+ driver = DB_DRIVER
+ # all qt examples use TQSqlDatabase::addDatabase, but
+ # this never returns NULL in my experience
+ drivers = list(map(str, TQSqlDatabase.drivers()))
+ if driver in drivers:
+ dlg = dbConnect(driver)
+ #TODO: make connection parameters accessible
+ return dlg.exec_loop()
+ else:
+ TQMessageBox.warning(None, "Database Error",
+ "<%s> database driver not found!\n\n"
+ "Please make sure, that this database adaptor\n"
+ "is available in your TQt installation.\n" %
+ (driver), TQMessageBox.Abort | TQMessageBox.Escape)
+ return FALSE
+
+class dbConnect(frmConnect):
+ def __init__(self, driver, parent = None):
+ frmConnect.__init__(self, parent)
+ self.hostnames = DB_HOSTNAMES
+ self.hostname = DB_HOSTNAMES[0]
+ self.databases = DB_DATABASES
+ self.database = DB_DATABASES[0]
+ self.username = DB_USERNAME
+ self.password = DB_PASSWORD
+ self.dbdriver = driver
+
+ self.txtName.setText(self.username)
+ self.txtPasswd.setText(self.password)
+ list(map(self.cmbServer.insertItem, self.hostnames))
+ list(map(self.cmbDatabase.insertItem, self.databases))
+ self.connect(self.buttonHelp, SIGNAL("clicked()"),
+ self.buttonHelp_clicked)
+
+ def accept(self):
+ self.hostname = self.cmbServer.currentText()
+ self.database = self.cmbDatabase.currentText()
+ self.username = self.txtName.text()
+ self.password = self.txtPasswd.text()
+ db = TQSqlDatabase.addDatabase(self.dbdriver)
+ if db:
+ db.setHostName(self.hostname)
+ db.setDatabaseName(self.database)
+ db.setUserName(self.username)
+ db.setPassword(self.password)
+ if db.open():
+ frmConnect.accept(self)
+ else:
+ TQMessageBox.warning(self, "Database Error",
+ "Cannot open %s database on %s!\n\n%s\n%s\n" %
+ (self.database, self.hostname,
+ db.lastError().driverText(),
+ db.lastError().databaseText()), " Ooops ")
+
+
+ def buttonHelp_clicked(self):
+ TQMessageBox.information(self, "About Connecting",
+ "Here you specify userid, password, host and database\n"
+ "for the PyTQt sql examples. If you encounter any problems,\n"
+ "please read the README file in this folder before posting.\n\n"
+ "Thanks,\nHans-Peter Jansen <hpj@urpla.net>\n")
+
+
+if __name__ == "__main__":
+ app = TQApplication(sys.argv)
+ if createConnection():
+ print("ok")
+ else:
+ print("cancel")