summaryrefslogtreecommitdiffstats
path: root/examples/sql/sqltable/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/sql/sqltable/main.cpp')
-rw-r--r--examples/sql/sqltable/main.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/examples/sql/sqltable/main.cpp b/examples/sql/sqltable/main.cpp
new file mode 100644
index 000000000..68d31389a
--- /dev/null
+++ b/examples/sql/sqltable/main.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** 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 <qapplication.h>
+#include <qsqldatabase.h>
+#include <qdatatable.h>
+#include <qsqlcursor.h>
+#include <qmessagebox.h>
+
+/* Modify the following to match your environment */
+#define DRIVER "TQSQLITE" /* see the TQt SQL documentation for a list of available drivers */
+#define DATABASE ":memory:" /* the name of your database */
+#define USER "" /* user name with appropriate rights */
+#define PASSWORD "" /* password for USER */
+#define HOST "" /* host on which the database is running */
+
+class SimpleCursor : public TQSqlCursor
+{
+public:
+ SimpleCursor () : TQSqlCursor( "simpletable" ) {}
+protected:
+ TQSqlRecord* primeInsert()
+ {
+ /* a real-world application would use sequences, or the like */
+ TQSqlRecord* buf = TQSqlCursor::primeInsert();
+ TQSqlQuery q( "select max(id)+1 from simpletable" );
+ if ( q.next() )
+ buf->setValue( "id", q.value(0) );
+ return buf;
+ }
+};
+
+int main( int argc, char ** argv )
+{
+ TQApplication a( argc, argv );
+
+ TQSqlDatabase * db = TQSqlDatabase::addDatabase( DRIVER );
+ db->setDatabaseName( DATABASE );
+ db->setUserName( USER );
+ db->setPassword( PASSWORD );
+ db->setHostName( HOST );
+
+ if( !db->open() ){
+ db->lastError().showMessage( "An error occured. Please read the README file in the sqltable"
+ "dir for more information.\n\n" );
+ return 1;
+ }
+
+ if (!db->tables().contains("simpletable")) {
+ TQSqlQuery q("create table simpletable(id int, name varchar(20), address varchar(20))", db);
+ }
+
+ SimpleCursor cursor;
+
+ TQDataTable table( &cursor ); /* data table uses our cursor */
+ table.addColumn( "name", "Name" );
+ table.addColumn( "address", "Address" );
+ table.setSorting( TRUE );
+
+ a.setMainWidget( &table );
+ table.refresh(); /* load data */
+ table.show(); /* show widget */
+
+ return a.exec();
+}