From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- examples/sql/blob/main.cpp | 106 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 examples/sql/blob/main.cpp (limited to 'examples/sql/blob/main.cpp') diff --git a/examples/sql/blob/main.cpp b/examples/sql/blob/main.cpp new file mode 100644 index 000000000..e66e9aaf5 --- /dev/null +++ b/examples/sql/blob/main.cpp @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** 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 +#include +#include +#include +#include + +#define DRIVER "TQPSQL7" /* see the TQt SQL documentation for a list of available drivers */ +#define DATABASE "" /* 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 */ + +int main( int argc, char ** argv ) +{ + + TQApplication a( argc, argv, FALSE ); + TQSqlDatabase * db = TQSqlDatabase::addDatabase( DRIVER ); + db->setDatabaseName( DATABASE ); + db->setUserName( USER ); + db->setPassword( PASSWORD ); + db->setHostName( HOST ); + if ( !db->open() ) { + qWarning( db->lastError().databaseText() ); + return 1; + } + + if ( argc < 2 ) { + qWarning( "Usage: %s ", argv[0] ); + return 1; + } + + // read a file which we want to insert into the database + TQFile f( argv[1] ); + if ( !f.open( IO_ReadOnly ) ) { + qWarning( "Unable to open data file '%s' - exiting", argv[1] ); + return 1; + } + TQByteArray binaryData = f.readAll(); + qWarning( "Data size: %d", binaryData.size() ); + + // create a table with a binary field + TQSqlQuery q; + if ( !q.exec( "CREATE TABLE blobexample ( id INT PRIMARY KEY, binfield LONGBLOB )" ) ) { + qWarning( "Unable to create table - exiting" ); + return 1; + } + + // insert a BLOB into the table + if ( !q.prepare( "INSERT INTO blobexample ( id, binfield ) VALUES ( ?, ? )" ) ) { + qWarning( "Unable to prepare query - exiting" ); + return 1; + } + q.bindValue( 0, 1 ); + q.bindValue( 1, binaryData ); + if ( !q.exec() ) { + qWarning( "Unable to execute prepared query - exiting" ); + return 1; + } + + // read the BLOB back from the database + if ( !q.exec( "SELECT id, binfield FROM blobexample" ) ) { + qWarning( "Unable to execute query - exiting" ); + return 1; + } + qWarning( "\nTQSqlQuery:" ); + while ( q.next() ) { + qWarning( "BLOB id: %d", q.value( 0 ).toInt() ); + qWarning( "BLOB size: %d", q.value( 1 ).toByteArray().size() ); + } + + // write another BLOB using TQSqlCursor + TQSqlCursor cur( "blobexample" ); + TQSqlRecord * r = cur.primeInsert(); + r->setValue( "id", 2 ); + r->setValue( "binfield", binaryData ); + if ( !cur.insert() ) { + qWarning( "Unable to insert BLOB using TQSqlCursor - exiting" ); + return 1; + } + + // read the BLOBs back using TQSqlCursor + if ( !cur.select() ) { + qWarning( "Unable retrieve blobexample table using TQSqlCursor - exiting" ); + return 1; + } + qWarning( "\nTQSqlCursor:" ); + while ( cur.next() ) { + qWarning( "BLOB id: %d", cur.value( "id" ).toInt() ); + qWarning( "BLOB size: %d", cur.value( "binfield" ).toByteArray().size() ); + } + + if ( !q.exec( "DROP TABLE blobexample" ) ) { + qWarning( "Unable to drop table - exiting" ); + return 1; + } + return 0; +} -- cgit v1.2.1