summaryrefslogtreecommitdiff
path: root/connectivity/workben
diff options
context:
space:
mode:
authordkenny <dkenny@openoffice.org>2001-04-17 18:27:23 +0000
committerdkenny <dkenny@openoffice.org>2001-04-17 18:27:23 +0000
commit542b6fde75e24dab5e476ab730640081362ba51e (patch)
tree939834d70b60770bfab99b5072dc2a284af392f4 /connectivity/workben
parentb8f4833868258cf0ce763f891bb355ac40d54916 (diff)
Initial Import of Mozilla Addressbook SDBC Driver
Diffstat (limited to 'connectivity/workben')
-rw-r--r--connectivity/workben/testmoz/main.cxx291
-rw-r--r--connectivity/workben/testmoz/makefile.mk105
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
+