diff options
author | dkenny <dkenny@openoffice.org> | 2001-04-17 18:27:23 +0000 |
---|---|---|
committer | dkenny <dkenny@openoffice.org> | 2001-04-17 18:27:23 +0000 |
commit | 542b6fde75e24dab5e476ab730640081362ba51e (patch) | |
tree | 939834d70b60770bfab99b5072dc2a284af392f4 /connectivity/workben | |
parent | b8f4833868258cf0ce763f891bb355ac40d54916 (diff) |
Initial Import of Mozilla Addressbook SDBC Driver
Diffstat (limited to 'connectivity/workben')
-rw-r--r-- | connectivity/workben/testmoz/main.cxx | 291 | ||||
-rw-r--r-- | connectivity/workben/testmoz/makefile.mk | 105 |
2 files changed, 396 insertions, 0 deletions
diff --git a/connectivity/workben/testmoz/main.cxx b/connectivity/workben/testmoz/main.cxx new file mode 100644 index 000000000000..9744808abf37 --- /dev/null +++ b/connectivity/workben/testmoz/main.cxx @@ -0,0 +1,291 @@ +/************************************************************************* + * + * $RCSfile: main.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: dkenny $ $Date: 2001-04-17 19:27:23 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _CONNECTIVITY_SQLPARSE_HXX +#include <connectivity/sqlparse.hxx> +#endif + +#ifndef _CONNECTIVITY_PARSE_SQLITERATOR_HXX_ +#include "connectivity/sqliterator.hxx" +#endif +#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_ +#include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#endif +#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp> +#include <com/sun/star/sdbc/XResultSet.hpp> +#include <com/sun/star/sdbc/XResultSetMetaData.hpp> +#include <com/sun/star/sdbc/XRow.hpp> +#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYSTATE_HPP_ +#include <com/sun/star/beans/PropertyState.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif +#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_ +#include <unotools/processfactory.hxx> +#endif +#ifndef _CPPUHELPER_SERVICEFACTORY_HXX_ +#include <cppuhelper/servicefactory.hxx> +#endif +#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ +#include <com/sun/star/sdbc/XConnection.hpp> +#endif +#ifndef _COM_SUN_STAR_SDBC_XDRIVER_HPP_ +#include <com/sun/star/sdbc/XDriver.hpp> +#endif +#ifndef _COM_SUN_STAR_SDB_XDATABASEENVIRONMENT_HPP_ +#include <com/sun/star/sdb/XDatabaseEnvironment.hpp> +#endif + +#include "connectivity/sqlnode.hxx" +#include <ucbhelper/contentbroker.hxx> + +#include <rtl/ustring> + +using namespace connectivity; +using namespace com::sun::star::sdbc; +using namespace com::sun::star::sdb; +using namespace com::sun::star; +using namespace com::sun::star::uno; +using namespace com::sun::star::beans; +using namespace ::com::sun::star::container; +using namespace rtl; +using namespace cppu; + +#define OUtoCStr( x ) (OUStringToOString ( (x), RTL_TEXTENCODING_ASCII_US ).getStr()) + +void printXResultSet( Reference<XResultSet> &xRes ) +{ + if(xRes.is()) { + char* aPat = " %-22s "; + char* aPat_Short = " %-12s "; + Reference<XRow> xRow(xRes,UNO_QUERY); + Reference<XResultSetMetaData> xMeta = Reference<XResultSetMetaDataSupplier>(xRes,UNO_QUERY)->getMetaData(); + printf( "ColumnCount = %d\n", xMeta->getColumnCount()); + for(sal_Int32 i=1;i<=xMeta->getColumnCount();++i) + { + // printf(aPat.getStr(), xMeta->getColumnName(i).getStr()); + char *str = OUtoCStr(xMeta->getColumnName(i)); +// if ( i < 3 ) { +// printf( aPat_Short, str ); +// } else { + printf( aPat, str ); +// } + } + printf("\n"); + printf("------------------------------------------------------------------------------------------\n"); + sal_Int32 nRows = 0; + while( xRes.is() && xRes->next()) + { + for(sal_Int32 j=1;j<=xMeta->getColumnCount();++j) + try { + char *str = OUtoCStr(xRow->getString(j)); +// if ( j < 3 ) { +// printf( aPat_Short, str ); +// } else { + printf( aPat, str ); +// } + } catch (...) { + printf(" Ex "); + } + nRows++; + printf("\n"); + } + printf( "%d Row(s)\n", nRows); + } else { + printf(": FAILED to get a ResultSet \n"); + } +} + +#if (defined UNX) || (defined OS2) +void main( int argc, char * argv[] ) +#else +void _cdecl main( int argc, char * argv[] ) +#endif + +{ + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> m_xConnection; + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDriver> m_xDriver; + uno::Sequence< uno::Any > aArgs(2); + + try{ + Reference< ::com::sun::star::lang::XMultiServiceFactory > xFac = + createRegistryServiceFactory(OUString::createFromAscii("/export/home/openoffice619/program/applicat.rdb"),OUString()); + if(!xFac.is()) { + printf("No Factory\n"); + return; + } + comphelper::setProcessServiceFactory( xFac ); + + aArgs[0] <<= OUString::createFromAscii( "Local" ); + aArgs[1] <<= OUString::createFromAscii( "Office" ); + + ::ucb::ContentBroker::initialize( xFac, aArgs ); + + m_xDriver = + Reference<XDriver>(xFac->createInstance(OUString::createFromAscii("com.sun.star.sdbc.driver.mozaddressbook.Driver")),UNO_QUERY); + if(m_xDriver.is()) + { + + Sequence<PropertyValue> aValue; + + m_xConnection = + m_xDriver->connect(OUString::createFromAscii("sdbc:mozab:put_URL_here"),aValue); + + if(m_xConnection.is()) + { + // Test some metadata + printf("Testing getTables() : START\n"); + Reference< XDatabaseMetaData > xDmd = m_xConnection->getMetaData(); + if ( xDmd.is() ) { + printf(": got DatabaseMetaData \n"); + + OUString sQuoteStr = xDmd->getIdentifierQuoteString(); + printf( "Quote String : '%s'\n", OUtoCStr( sQuoteStr ) ); + + OUString sSQLCmds = xDmd->getSQLKeywords(); + printf( "SQL Commands : '%s'\n", OUtoCStr( sSQLCmds ) ); + + { + Reference<XResultSet> xRes = xDmd->getTables( + makeAny(OUString::createFromAscii("")), // Catalog + OUString::createFromAscii(""), // Schema + OUString::createFromAscii(""), // TabName + uno::Sequence<rtl::OUString>() + ); + printXResultSet( xRes ); + } + + { + Reference<XResultSet> xRes = xDmd->getColumns( + makeAny(OUString::createFromAscii("")), // Catalog + OUString::createFromAscii(""), // Schema + OUString::createFromAscii(""), // TabName + OUString::createFromAscii("") + ); + printXResultSet( xRes ); + } + } else { + printf(": FAILED to get DatabaseMetaData \n"); + } + printf("Testing getTables() : END\n"); + + // Try a query + printf("Testing createStatement() & executeQuery() : START\n"); + Reference<XStatement> xStmt = m_xConnection->createStatement(); + if(xStmt.is()) + { + printf(": got statement\n"); + printf(": excuteQuery() : START \n"); + try { + Reference<XResultSet> xRes = + // xStmt->executeQuery(OUString::createFromAscii("SELECT + // DisplayName, PrimaryEmail FROM \"Personal Address Book\"")); + xStmt->executeQuery(OUString::createFromAscii("SELECT * FROM \"Personal Address Book\"")); + printXResultSet( xRes ); + } catch (...) { + printf( "Exception caught\n"); + } +#ifdef DARREN_WORK + if(xRes.is()) + { + printf(": got result\n"); + ::rtl::OUString aPat = ::rtl::OUString::createFromAscii("%s\t"); + Reference<XRow> xRow(xRes,UNO_QUERY); + Reference<XResultSetMetaData> xMeta = Reference<XResultSetMetaDataSupplier>(xRes,UNO_QUERY)->getMetaData(); + for(sal_Int32 i=1;i<xMeta->getColumnCount();++i) + { + printf(aPat.getStr(), xMeta->getColumnName(i).getStr()); + } + printf("----------------------------------------------------------------------\n"); + while( xRes.is() && xRes->next()) + { + for(sal_Int32 j=1;j<xMeta->getColumnCount();++j) + printf(aPat.getStr(), xRow->getString(j).getStr()); + printf("\n"); + } + } else { + printf(": FAILED to get result\n"); + } +#endif /* DARREN_WORK */ + printf(": excuteQuery() : END \n"); + } else { + printf(": FAILED to get statement\n"); + } + printf("Testing createStatement() & executeQuery() : END\n"); + } + + } else { + printf("No driver!\n"); + } + } + catch(...) + { + printf("Exception thrown!\n"); + + } + printf("Exiting...\n"); +} + diff --git a/connectivity/workben/testmoz/makefile.mk b/connectivity/workben/testmoz/makefile.mk new file mode 100644 index 000000000000..86fe0c61e117 --- /dev/null +++ b/connectivity/workben/testmoz/makefile.mk @@ -0,0 +1,105 @@ +#************************************************************************* +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.1 $ +# +# last change: $Author: dkenny $ $Date: 2001-04-17 19:27:23 $ +# +# The Contents of this file are made available subject to the terms of +# either of the following licenses +# +# - GNU Lesser General Public License Version 2.1 +# - Sun Industry Standards Source License Version 1.1 +# +# Sun Microsystems Inc., October, 2000 +# +# GNU Lesser General Public License Version 2.1 +# ============================================= +# Copyright 2000 by Sun Microsystems, Inc. +# 901 San Antonio Road, Palo Alto, CA 94303, USA +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License version 2.1, as published by the Free Software Foundation. +# +# 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +# +# Sun Industry Standards Source License Version 1.1 +# ================================================= +# The contents of this file are subject to the Sun Industry Standards +# Source License Version 1.1 (the "License"); You may not use this file +# except in compliance with the License. You may obtain a copy of the +# License at http://www.openoffice.org/license.html. +# +# Software provided under this License is provided on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, +# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, +# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. +# See the License for the specific provisions governing your rights and +# obligations concerning the Software. +# +# The Initial Developer of the Original Code is: Sun Microsystems, Inc. +# +# Copyright: 2000 by Sun Microsystems, Inc. +# +# All Rights Reserved. +# +# Contributor(s): _______________________________________ +# +# +# +#************************************************************************* + +PRJ=..$/.. + +PRJNAME=connectivity +TARGET=testmoz +TARGETTYPE=CUI +LIBTARGET=NO +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : svpre.mk +.INCLUDE : settings.mk +.INCLUDE : sv.mk + +# --- Files -------------------------------------------------------- +OBJFILES= $(OBJ)$/main.obj + +APP1TARGET= $(TARGET) +APP1OBJS= $(OBJFILES) +APPSTDLIBS=$(SALLIB) \ + $(VOSLIB) \ + $(CPPULIB) \ + $(CPPUHELPERLIB) \ + $(UCBHELPERLIB) \ + $(DBTOOLSLIB) \ + -lsdbc2 -lcalc619li -lmozab619li \ + `grep -v '^$$' $(SLB)$/sql.lib | sed -e "s@^@$(PRJ)/@"` + +# -lsdbc2 -lcalc619li -lmozab619li \ + +# ... cfgapi .............................. +APP1STDLIBS = $(APPSTDLIBS) + +APP1STDLIBS+=$(STDLIBCPP) + +.IF "$(GUI)"=="WNT" +APP1STDLIBS+=$(LIBCIMT) +.ENDIF + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + |