1  /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_connectivity.hxx"
30 
31 #include "NTable.hxx"
32 #include "NTables.hxx"
33 #include "NColumns.hxx"
34 #ifndef _CONNECTIVITY_EVOAB_CATALOG_HXX__
35 #include "NCatalog.hxx"
36 #endif
37 
38 using namespace connectivity;
39 using namespace ::comphelper;
40 using namespace ::com::sun::star::uno;
41 using namespace ::com::sun::star::beans;
42 using namespace ::com::sun::star::sdbcx;
43 using namespace ::com::sun::star::sdbc;
44 using namespace ::com::sun::star::container;
45 using namespace ::com::sun::star::lang;
46 using namespace connectivity::evoab;
47 // -------------------------------------------------------------------------
48 OEvoabTable::OEvoabTable( sdbcx::OCollection* _pTables,
49 	            OEvoabConnection* _pConnection,
50 	            const ::rtl::OUString& _Name,
51 	            const ::rtl::OUString& _Type,
52 	            const ::rtl::OUString& _Description ,
53 	            const ::rtl::OUString& _SchemaName,
54 	            const ::rtl::OUString& _CatalogName
55 	            ) : OEvoabTable_TYPEDEF(_pTables,sal_True,
56 	                              _Name,
57 	                              _Type,
58 	                              _Description,
59 	                              _SchemaName,
60 	                              _CatalogName),
61 	                m_pConnection(_pConnection)
62 {
63 	construct();
64 }
65 // -------------------------------------------------------------------------
66 void OEvoabTable::refreshColumns()
67 {
68 	TStringVector aVector;
69 
70 	if (!isNew())
71 	{
72 	    Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(
73 				Any(),
74 				m_SchemaName,
75 				m_Name,
76 				::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")));
77 
78 	    if (xResult.is())
79 	    {
80 		Reference< XRow > xRow(xResult, UNO_QUERY);
81 		while (xResult->next())
82 				aVector.push_back(xRow->getString(4));
83 	    }
84 	}
85 	if (m_pColumns)
86 	    m_pColumns->reFill(aVector);
87 	else
88 	    m_pColumns  = new OEvoabColumns(this,m_aMutex,aVector);
89 }
90