2010-10-27 12:33:13 +01:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2001-02-16 14:54:09 +00:00
/*************************************************************************
*
2008-04-10 14:07:12 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2001-02-16 14:54:09 +00:00
*
2010-02-12 15:01:35 +01:00
* Copyright 2000 , 2010 Oracle and / or its affiliates .
2001-02-16 14:54:09 +00:00
*
2008-04-10 14:07:12 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2001-02-16 14:54:09 +00:00
*
2008-04-10 14:07:12 +00:00
* This file is part of OpenOffice . org .
2001-02-16 14:54:09 +00:00
*
2008-04-10 14:07:12 +00:00
* OpenOffice . org is free software : you can redistribute it and / or modify
* it under the terms of the GNU Lesser General Public License version 3
* only , as published by the Free Software Foundation .
2001-02-16 14:54:09 +00:00
*
2008-04-10 14:07:12 +00:00
* OpenOffice . org 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 version 3 for more details
* ( a copy is included in the LICENSE file that accompanied this code ) .
2001-02-16 14:54:09 +00:00
*
2008-04-10 14:07:12 +00:00
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice . org . If not , see
* < http : //www.openoffice.org/license.html>
* for a copy of the LGPLv3 License .
2001-02-16 14:54:09 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef DBAUI_DATABASEEXPORT_HXX
# define DBAUI_DATABASEEXPORT_HXX
# include <com/sun/star/sdbc/XResultSet.hpp>
# include <com/sun/star/sdbc/XResultSetMetaData.hpp>
# include <com/sun/star/beans/XPropertySet.hpp>
# include <com/sun/star/util/XNumberFormatter.hpp>
# include <com/sun/star/container/XNameAccess.hpp>
# include <com/sun/star/container/XIndexAccess.hpp>
# include <com/sun/star/lang/Locale.hpp>
2001-02-23 14:02:06 +00:00
# include <com/sun/star/lang/XMultiServiceFactory.hpp>
2009-04-23 10:42:05 +00:00
# include <com/sun/star/util/Date.hpp>
2001-02-16 14:54:09 +00:00
# include <vector>
# include <tools/string.hxx>
2001-02-23 14:02:06 +00:00
# include <comphelper/stl_types.hxx>
# include "TypeInfo.hxx"
2008-01-30 07:46:24 +00:00
# include "WTypeSelect.hxx"
2005-09-23 11:32:45 +00:00
# include "commontypes.hxx"
2006-04-19 12:20:32 +00:00
# include "IUpdateHelper.hxx"
2001-02-16 14:54:09 +00:00
2006-04-19 12:20:32 +00:00
namespace com { namespace sun { namespace star {
namespace awt {
struct FontDescriptor ;
}
namespace sdbc {
class XPreparedStatement ;
class XDatabaseMetaData ;
}
} } }
2002-01-22 06:22:37 +00:00
2006-06-20 02:11:09 +00:00
# define COLUMN_POSITION_NOT_FOUND ((sal_Int32)-1)
2002-01-22 06:22:37 +00:00
class Window ;
2006-05-04 07:42:41 +00:00
class SvNumberFormatter ;
2001-02-16 14:54:09 +00:00
namespace dbaui
{
2001-02-23 14:02:06 +00:00
class OFieldDescription ;
class OTypeInfo ;
2002-01-22 06:22:37 +00:00
class OWizTypeSelect ;
2001-02-16 14:54:09 +00:00
class ODatabaseExport
{
2001-02-23 14:02:06 +00:00
public :
DECLARE_STL_MAP ( : : rtl : : OUString , OFieldDescription * , : : comphelper : : UStringMixLess , TColumns ) ;
2002-05-23 10:10:43 +00:00
typedef : : std : : vector < TColumns : : const_iterator > TColumnVector ;
typedef : : std : : vector < : : std : : pair < sal_Int32 , sal_Int32 > > TPositions ;
2008-01-30 07:46:24 +00:00
2001-02-16 14:54:09 +00:00
protected :
2002-05-23 10:10:43 +00:00
TPositions m_vColumns ; // Welche Spalten "ubernommen werden sollen
2001-02-16 14:54:09 +00:00
: : std : : vector < sal_Int32 > m_vColumnTypes ; // FeldTypen f"ur schnelleren Zugriff
2001-02-23 14:02:06 +00:00
: : std : : vector < sal_Int32 > m_vColumnSize ;
2007-11-21 14:59:12 +00:00
: : std : : vector < sal_Int16 > m_vNumberFormat ;
2006-06-20 02:11:09 +00:00
: : com : : sun : : star : : lang : : Locale m_aLocale ;
2001-02-16 14:54:09 +00:00
2006-06-20 02:11:09 +00:00
TColumns m_aDestColumns ; // container for new created columns
TColumnVector m_vDestVector ;
2001-02-23 14:02:06 +00:00
2001-02-16 14:54:09 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : beans : : XPropertySet > m_xTable ; // dest table
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : container : : XNameAccess > m_xTables ; // container
2005-09-23 11:32:45 +00:00
SharedConnection m_xConnection ; // dest conn
2001-02-16 14:54:09 +00:00
2006-04-19 12:20:32 +00:00
: : boost : : shared_ptr < IUpdateHelper > m_pUpdateHelper ;
2001-02-16 14:54:09 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSet > m_xResultSet ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > m_xFormatter ; // a number formatter working with the connection's NumberFormatsSupplier
2001-02-23 14:02:06 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > m_xFactory ;
2009-04-23 10:42:05 +00:00
: : com : : sun : : star : : util : : Date m_aNullDate ;
2001-02-16 14:54:09 +00:00
2006-05-04 07:42:41 +00:00
SvNumberFormatter * m_pFormatter ;
2008-01-30 07:46:24 +00:00
SvStream & m_rInputStream ;
2007-09-26 13:49:39 +00:00
//for save the selected tablename
: : rtl : : OUString m_sDefaultTableName ;
2011-02-27 22:55:22 +01:00
2001-02-16 14:54:09 +00:00
String m_sTextToken ; // Zellen Inhalt
2006-05-04 07:42:41 +00:00
String m_sNumToken ; /// SDNUM value
String m_sValToken ; /// SDVAL value
2003-03-19 16:57:12 +00:00
TOTypeInfoSP m_pTypeInfo ; // contains the default type
2006-01-19 14:42:16 +00:00
const TColumnVector * m_pColumnList ;
const OTypeInfoMap * m_pInfoMap ;
2001-02-16 14:54:09 +00:00
sal_Int32 m_nColumnPos ; // aktuelle Spaltenposition
sal_Int32 m_nRows ; // Anzahl der Zeilen die durchsucht werden sollen
sal_Int32 m_nRowCount ; // current count of rows
rtl_TextEncoding m_nDefToken ; // Sprache
sal_Bool m_bError ; // Fehler und Abbruchstatus
sal_Bool m_bInTbl ; // Ist gesetzt, wenn der Parser sich in der RTF Tabelle befindet
sal_Bool m_bHead ; // ist true, wenn die Kopfzeile noch nicht gelesen wurde
sal_Bool m_bDontAskAgain ; // Falls beim Einf"ugen ein Fehler auftritt, soll die Fehlermeldung nicht
sal_Bool m_bIsAutoIncrement ; // if PKey is set by user
2001-07-16 12:42:36 +00:00
sal_Bool m_bFoundTable ; // set to true when a table was found
2002-05-28 07:08:11 +00:00
sal_Bool m_bCheckOnly ;
2007-11-21 14:59:12 +00:00
bool m_bAppendFirstLine ;
2001-02-16 14:54:09 +00:00
2002-01-22 06:22:37 +00:00
virtual sal_Bool CreateTable ( int nToken ) = 0 ;
2008-01-30 07:46:24 +00:00
virtual TypeSelectionPageFactory
getTypeSelectionPageFactory ( ) = 0 ;
2002-01-22 06:22:37 +00:00
void CreateDefaultColumn ( const : : rtl : : OUString & _rColumnName ) ;
2007-11-21 14:59:12 +00:00
sal_Int16 CheckString ( const String & aToken , sal_Int16 _nOldNumberFormat ) ;
2006-05-04 07:42:41 +00:00
void adjustFormat ( ) ;
void eraseTokens ( ) ;
2002-01-22 06:22:37 +00:00
void insertValueIntoColumn ( ) ;
sal_Bool createRowSet ( ) ;
2006-01-19 14:42:16 +00:00
void showErrorDialog ( const : : com : : sun : : star : : sdbc : : SQLException & e ) ;
2006-05-04 07:42:41 +00:00
void ensureFormatter ( ) ;
2002-01-22 06:22:37 +00:00
/** executeWizard calls a wizard to create/append data
@ param _sTableName the tablename
@ param _aTextColor the text color of the new created table
@ param _rFont the font of the new table
@ return true when an error occurs
*/
sal_Bool executeWizard ( const : : rtl : : OUString & _sTableName ,
const : : com : : sun : : star : : uno : : Any & _aTextColor ,
const : : com : : sun : : star : : awt : : FontDescriptor & _rFont ) ;
2001-02-16 14:54:09 +00:00
virtual ~ ODatabaseExport ( ) ;
public :
2008-01-30 07:46:24 +00:00
ODatabaseExport (
const SharedConnection & _rxConnection ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const TColumnVector * rList ,
const OTypeInfoMap * _pInfoMap ,
SvStream & _rInputStream
) ;
2001-02-16 14:54:09 +00:00
// wird f"ur auto. Typ-Erkennung gebraucht
2008-01-30 07:46:24 +00:00
ODatabaseExport (
sal_Int32 nRows ,
const TPositions & _rColumnPositions ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const TColumnVector * rList ,
const OTypeInfoMap * _pInfoMap ,
sal_Bool _bAutoIncrementEnabled ,
SvStream & _rInputStream
) ;
2001-02-16 14:54:09 +00:00
2001-07-02 12:22:11 +00:00
void SetColumnTypes ( const TColumnVector * rList , const OTypeInfoMap * _pInfoMap ) ;
2007-09-26 13:49:39 +00:00
inline void SetTableName ( const : : rtl : : OUString & _sTableName ) { m_sDefaultTableName = _sTableName ; }
2001-11-23 13:51:40 +00:00
virtual void release ( ) = 0 ;
2002-05-28 07:08:11 +00:00
void enableCheckOnly ( ) { m_bCheckOnly = sal_True ; }
sal_Bool isCheckEnabled ( ) const { return m_bCheckOnly ; }
2006-04-19 12:20:32 +00:00
static : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XPreparedStatement > createPreparedStatment ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XDatabaseMetaData > & _xMetaData
, const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : beans : : XPropertySet > & _xDestTable
, const TPositions & _rvColumns ) ;
2001-02-16 14:54:09 +00:00
} ;
}
# endif // DBAUI_DATABASEEXPORT_HXX
2010-10-27 12:33:13 +01:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */