|
|
|
This directory contains some translated sql examples from TQt 3.x.
|
|
|
|
|
|
|
|
runform1.py, form1.ui:
|
|
|
|
|
|
|
|
A simple designer generated TQDataTable. Run "pytquic form1.ui -o form1.py".
|
|
|
|
|
|
|
|
runform2.py, form2.ui:
|
|
|
|
|
|
|
|
A simple designer generated TQDataBrowser. Run "pytquic 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 TQt 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 TQt 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 TQt'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>
|