2001-02-16 14:54:09 +00:00
/*************************************************************************
*
2005-09-08 14:16:32 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:16:32 +00:00
* $ RCSfile : DExport . hxx , v $
2001-02-16 14:54:09 +00:00
*
2006-01-19 14:42:16 +00:00
* $ Revision : 1.14 $
2001-02-16 14:54:09 +00:00
*
2006-01-19 14:42:16 +00:00
* last change : $ Author : obo $ $ Date : 2006 - 01 - 19 15 : 42 : 16 $
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:16:32 +00:00
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1 .
2001-02-16 14:54:09 +00:00
*
*
2005-09-08 14:16:32 +00:00
* GNU Lesser General Public License Version 2.1
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* Copyright 2005 by Sun Microsystems , Inc .
* 901 San Antonio Road , Palo Alto , CA 94303 , USA
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:16:32 +00:00
* 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 .
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:16:32 +00:00
* 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 .
2001-02-16 14:54:09 +00:00
*
2005-09-08 14:16:32 +00:00
* 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
2001-02-16 14:54:09 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef DBAUI_DATABASEEXPORT_HXX
# define DBAUI_DATABASEEXPORT_HXX
# ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_
# include <com/sun/star/sdbc/XResultSet.hpp>
# endif
# ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATA_HPP_
# include <com/sun/star/sdbc/XResultSetMetaData.hpp>
# endif
# ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_
# include <com/sun/star/sdbc/XResultSetUpdate.hpp>
# endif
# ifndef _COM_SUN_STAR_SDBC_XROWUPDATE_HPP_
# include <com/sun/star/sdbc/XRowUpdate.hpp>
# endif
# ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
# include <com/sun/star/beans/XPropertySet.hpp>
# endif
# ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_
# include <com/sun/star/util/XNumberFormatter.hpp>
# endif
# ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
# include <com/sun/star/container/XNameAccess.hpp>
# endif
# ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
# include <com/sun/star/container/XIndexAccess.hpp>
# endif
# ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
# include <com/sun/star/lang/Locale.hpp>
# endif
2001-02-23 14:02:06 +00:00
# ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
# include <com/sun/star/lang/XMultiServiceFactory.hpp>
# endif
2001-02-16 14:54:09 +00:00
# include <vector>
# ifndef _STRING_HXX
# include <tools/string.hxx>
# endif
2001-02-23 14:02:06 +00:00
# ifndef _COMPHELPER_STLTYPES_HXX_
# include <comphelper/stl_types.hxx>
# endif
# ifndef DBAUI_TYPEINFO_HXX
# include "TypeInfo.hxx"
# endif
2005-09-23 11:32:45 +00:00
# ifndef _DBAUI_COMMON_TYPES_HXX_
# include "commontypes.hxx"
# endif
2001-02-16 14:54:09 +00:00
2002-01-22 06:22:37 +00:00
namespace com { namespace sun { namespace star { namespace awt
{
struct FontDescriptor ;
} } } }
class Window ;
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 ;
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 ;
: : std : : vector < sal_Int32 > m_vFormatKey ;
2001-02-16 14:54:09 +00:00
: : com : : sun : : star : : lang : : Locale m_nLocale ;
2001-02-23 14:02:06 +00:00
TColumns m_aDestColumns ; // container for new created columns
TColumnVector m_vDestVector ;
2001-02-16 14:54:09 +00:00
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : container : : XNameAccess > m_xColumns ; // container
: : 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
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSet > m_xResultSet ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetUpdate > m_xResultSetUpdate ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XResultSetMetaData > m_xResultSetMetaData ; //
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : sdbc : : XRowUpdate > m_xRowUpdate ; //
: : 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 ;
2001-02-16 14:54:09 +00:00
String m_sTextToken ; // Zellen Inhalt
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 ;
2001-02-16 14:54:09 +00:00
2002-01-22 06:22:37 +00:00
virtual sal_Bool CreateTable ( int nToken ) = 0 ;
/** createPage is called when the wizards needs an additional page to show
*/
virtual OWizTypeSelect * createPage ( Window * _pParent ) = 0 ;
void CreateDefaultColumn ( const : : rtl : : OUString & _rColumnName ) ;
sal_Int32 CheckString ( const String & aToken , sal_Int32 _nOldFormat ) ;
void insertValueIntoColumn ( ) ;
sal_Bool createRowSet ( ) ;
2006-01-19 14:42:16 +00:00
void showErrorDialog ( const : : com : : sun : : star : : sdbc : : SQLException & e ) ;
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 :
2005-09-23 11:32:45 +00:00
ODatabaseExport ( const SharedConnection & _rxConnection ,
2001-02-23 14:02:06 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
2001-07-02 12:22:11 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const TColumnVector * rList = 0 ,
const OTypeInfoMap * _pInfoMap = 0 ) ;
2001-02-16 14:54:09 +00:00
// wird f"ur auto. Typ-Erkennung gebraucht
2001-02-23 14:02:06 +00:00
ODatabaseExport ( sal_Int32 nRows ,
2002-05-23 10:10:43 +00:00
const TPositions & _rColumnPositions ,
2001-02-23 14:02:06 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : util : : XNumberFormatter > & _rxNumberF ,
2001-07-02 12:22:11 +00:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XMultiServiceFactory > & _rM ,
const TColumnVector * rList = 0 ,
const OTypeInfoMap * _pInfoMap = 0 ) ;
2001-02-16 14:54:09 +00:00
2001-07-02 12:22:11 +00:00
void SetColumnTypes ( const TColumnVector * rList , const OTypeInfoMap * _pInfoMap ) ;
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 ; }
2001-02-16 14:54:09 +00:00
} ;
}
# endif // DBAUI_DATABASEEXPORT_HXX