summaryrefslogtreecommitdiffstats
path: root/kexi/tests/newapi/tables_test.h
diff options
context:
space:
mode:
Diffstat (limited to 'kexi/tests/newapi/tables_test.h')
-rw-r--r--kexi/tests/newapi/tables_test.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/kexi/tests/newapi/tables_test.h b/kexi/tests/newapi/tables_test.h
new file mode 100644
index 000000000..67516db04
--- /dev/null
+++ b/kexi/tests/newapi/tables_test.h
@@ -0,0 +1,117 @@
+/* This file is part of the KDE project
+ Copyright (C) 2003-2004 Jaroslaw Staniek <js@iidea.pl>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef TABLETEST_H
+#define TABLETEST_H
+
+int tablesTest()
+{
+ if (dbCreationTest()!=0)
+ return 1;
+
+ if (!conn->useDatabase( db_name )) {
+ conn->debugError();
+ return 1;
+ }
+
+ conn->setAutoCommit(false);
+ KexiDB::Transaction t = conn->beginTransaction();
+ if (conn->error()) {
+ conn->debugError();
+ return 1;
+ }
+
+ //now: lets create tables:
+ KexiDB::Field *f;
+ KexiDB::TableSchema *t_persons = new KexiDB::TableSchema("persons");
+ t_persons->setCaption("Persons in our factory");
+ t_persons->addField( f=new KexiDB::Field("id", KexiDB::Field::Integer, KexiDB::Field::PrimaryKey | KexiDB::Field::AutoInc, KexiDB::Field::Unsigned) );
+ f->setCaption("ID");
+ t_persons->addField( f=new KexiDB::Field("age", KexiDB::Field::Integer, 0, KexiDB::Field::Unsigned) );
+ f->setCaption("Age");
+ t_persons->addField( f=new KexiDB::Field("name", KexiDB::Field::Text) );
+ f->setCaption("Name");
+ t_persons->addField( f=new KexiDB::Field("surname", KexiDB::Field::Text) );
+ f->setCaption("Surname");
+ if (!conn->createTable( t_persons )) {
+ conn->debugError();
+ return 1;
+ }
+ kdDebug() << "-- PERSONS created --" << endl;
+ t_persons->debug();
+
+ if (!conn->insertRecord(*t_persons, QVariant(1), QVariant(27), QVariant("Jaroslaw"), QVariant("Staniek"))
+ ||!conn->insertRecord(*t_persons, QVariant(2), QVariant(60), QVariant("Lech"), QVariant("Walesa"))
+ ||!conn->insertRecord(*t_persons, QVariant(3), QVariant(45), QVariant("Bill"), QVariant("Gates"))
+ ||!conn->insertRecord(*t_persons, QVariant(4), QVariant(35), QVariant("John"), QVariant("Smith"))
+ )
+ {
+ kdDebug() << "-- PERSONS data err. --" << endl;
+ return 1;
+ }
+ kdDebug() << "-- PERSONS data created --" << endl;
+
+
+ KexiDB::TableSchema *t_cars = new KexiDB::TableSchema("cars");
+ t_cars->setCaption("Cars owned by persons");
+ t_cars->addField( f=new KexiDB::Field("id", KexiDB::Field::Integer, KexiDB::Field::PrimaryKey | KexiDB::Field::AutoInc, KexiDB::Field::Unsigned) );
+ f->setCaption("ID");
+ t_cars->addField( f=new KexiDB::Field("owner", KexiDB::Field::Integer, 0, KexiDB::Field::Unsigned) );
+ f->setCaption("Car owner");
+ t_cars->addField( f=new KexiDB::Field("model", KexiDB::Field::Text) );
+ f->setCaption("Car model");
+ if (!conn->createTable( t_cars )) {
+ conn->debugError();
+ return 1;
+ }
+ kdDebug() << "-- CARS created --" << endl;
+ if (!conn->insertRecord(*t_cars, QVariant(1), QVariant(1), QVariant("Fiat"))
+ ||!conn->insertRecord(*t_cars, QVariant(2), QVariant(2), QVariant("Syrena"))
+ ||!conn->insertRecord(*t_cars, QVariant(3), QVariant(3), QVariant("Chrysler"))
+ ||!conn->insertRecord(*t_cars, QVariant(4), QVariant(3), QVariant("BMW"))
+ ||!conn->insertRecord(*t_cars, QVariant(5), QVariant(4), QVariant("Volvo"))
+ )
+ {
+ kdDebug() << "-- CARS data err. --" << endl;
+ return 1;
+ }
+ kdDebug() << "-- CARS data created --" << endl;
+
+ if (!conn->commitTransaction(t)) {
+ conn->debugError();
+ return 1;
+ }
+
+ kdDebug() << "NOW, TABLE LIST: " << endl;
+ QStringList tnames = conn->tableNames();
+ for (QStringList::iterator it = tnames.begin(); it!=tnames.end(); ++it) {
+ kdDebug() << " - " << (*it) << endl;
+ }
+
+
+ if (!conn->closeDatabase()) {
+ conn->debugError();
+ return 1;
+ }
+
+ return 0;
+}
+
+#endif
+