xref: /trunk/main/connectivity/source/drivers/evoab2/NTable.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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