diff options
Diffstat (limited to 'examples/sql/overview/subclass3/main.cpp')
-rw-r--r-- | examples/sql/overview/subclass3/main.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/sql/overview/subclass3/main.cpp b/examples/sql/overview/subclass3/main.cpp new file mode 100644 index 000000000..db77b855e --- /dev/null +++ b/examples/sql/overview/subclass3/main.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "main.h" +#include <qdatatable.h> + +InvoiceItemCursor::InvoiceItemCursor() : + TQSqlCursor( "invoiceitem" ) +{ + TQSqlFieldInfo productName( "productname", TQVariant::String ); + append( productName ); + setCalculated( productName.name(), TRUE ); +} + + +TQVariant InvoiceItemCursor::calculateField( const TQString & name ) +{ + if ( name == "productname" ) { + TQSqlQuery query( "SELECT name FROM prices WHERE id=" + + field( "pricesid" )->value().toString() ); + if ( query.next() ) + return query.value( 0 ); + } + + return TQVariant( TQString::null ); +} + + +int main( int argc, char *argv[] ) +{ + TQApplication app( argc, argv ); + + if ( createConnections() ) { + InvoiceItemCursor invoiceItemCursor; + + TQDataTable *invoiceItemTable = new TQDataTable( &invoiceItemCursor ); + + app.setMainWidget( invoiceItemTable ); + + invoiceItemTable->addColumn( "productname", "Product" ); + invoiceItemTable->addColumn( "quantity", "Quantity" ); + invoiceItemTable->addColumn( "paiddate", "Paid" ); + + invoiceItemTable->refresh(); + invoiceItemTable->show(); + + return app.exec(); + } + + return 1; +} |