You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pytqt/examples3/SQL
Slávek Banko e790d08307
Fix examples to properly import python_tqt module
8 years ago
..
README Fix inadvertent renaming. 11 years ago
connect.ui Initial TQt conversion 13 years ago
connect.ui.h Initial TQt conversion 13 years ago
dbconnect.py Fix examples to properly import python_tqt module 8 years ago
dbpar.py Initial TQt conversion 13 years ago
form1.ui Initial TQt conversion 13 years ago
form2.ui Initial TQt conversion 13 years ago
frmconnect.py Fix examples to properly import python_tqt module 8 years ago
frmconnect.ui Initial TQt conversion 13 years ago
runform1.py Fix examples to properly import python_tqt module 8 years ago
runform2.py Fix examples to properly import python_tqt module 8 years ago
runsqlex.py Fix examples to properly import python_tqt module 8 years ago
sqlcustom1.py Fix examples to properly import python_tqt module 8 years ago
sqlex.ui Fix Retquired accidental conversion 13 years ago
sqlex.ui.h Initial TQt conversion 13 years ago
sqlsubclass5.py Fix examples to properly import python_tqt module 8 years ago
sqltable4.py Fix examples to properly import python_tqt module 8 years ago
testdb_mysql.sql Initial import of python-qt3 13 years ago
testdb_pg.sql Fix inadvertent "TQ" changes. 12 years ago

README

This directory contains some translated sql examples from TQt 3.x.

runform1.py, form1.ui:

  A simple designer generated TQDataTable. Run "pyuic form1.ui -o form1.py".

runform2.py, form2.ui:

  A simple designer generated TQDataBrowser. Run "pyuic form2.ui -o form2.py".

sqlcustom1.py: 

  TQSqlForm based form with a simple custom editor forcing all input to
  be uppercase

sqltable4.py:

  Custom TQDataTable with reimplemented paintField method, combined with
  a TQComboBox based custom field editor (StatusPicker), gathering its
  items from a different table (status) and a calculated column (monsalary).
  Note, that TQSqlEditorFactory based field editors are somewhat restricted,
  because TQt's TQ_PROPERTY feature isn't supported, yet. I've circumvented
  this limitation by choosing the status table ids corresponding to the
  index in the TQComboBox.

sqlsubclass5.py:

  Similar to the former, and even more deviated from its qt ancestor,
  because the sense escaped me. This could be related to the different
  database layout needed for MySQL (Trolltech used PostgreSQL sequences,
  while we're using the simpler, but less powerful auto_increment here).
  If you enter and invalid date (e.g. day: 0) in the Paid column, it is
  shown as "not yet", but produces some qt warnings. 

runsqlex.py, sqlex.ui, sqlex.ui.h, connect.ui, connect.ui.h:

  This one is a most advanced example, showing the use of a TQSqlCursor
  driven by TQSqlQuery and iterating through database tables and fields.
  Definitely worth a look.

Unfortunately you will have to make sure that these prerequisites are met 
before trying the examples:

  - Install MySQL or PostgreSQL and any development packages

  - Create a database user with sufficient rights

  - Create the testdb database
    - For MySQL, run: mysql -u user -p password < testdb_mysql.sql
    - For PostgreSQL, run: psql -U user template1 -f testdb_pg.sql

  - Build TQt with the mysql and/or psql modules activated.

Now you should be ready for the fun part. You can run dbconnect.py from
a command line and try to connect to the database. If all went well,
'ok' should be printed after pressing OK. If you don't want to enter all
your data over and over again, create a file named local_dbpar.py here,
with the following keys (with your own data, of course):

DB_HOSTNAMES = ["localhost"]
DB_DATABASES = ["testdb"]
DB_USERNAME = "name"
DB_PASSWORD = "pass"

The dbconnect.py script is generated from dbconnect.ui, which was created
with qt's designer. You can find it also in Boudewijn Rempt's book
"GUI Programming with Python, using the TQt Toolkit". Although you won't find
the SQL widgets discussed there, for the simple reason of the book being
written before they appeared, it is a valuable source for anybody new in
this area.

Please direct any comments, patches and questions to <pytde@mats.gmd.de>.

Good luck

Hans-Peter Jansen <hpj@urpla.net>