LibreOffice Module dbaccess (master) 1
hsqlimport.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#pragma once
11
12#include <com/sun/star/embed/XStorage.hpp>
13#include <com/sun/star/sdbc/XConnection.hpp>
14
15#include "rowinputbinary.hxx"
16#include "hsqlbinarynode.hxx"
17#include "columndef.hxx"
18
19namespace weld
20{
21class Window;
22}
23
24namespace dbahsql
25{
26class SAL_DLLPUBLIC_EXPORT HsqlImporter
27{
28private:
29 css::uno::Reference<css::sdbc::XConnection>& m_rConnection;
30 css::uno::Reference<css::embed::XStorage> m_xStorage;
31
32protected:
33 void insertRow(const std::vector<css::uno::Any>& xRows, std::u16string_view sTable,
34 const std::vector<ColumnDefinition>& rColTypes);
35 void processTree(HsqlBinaryNode& rNode, HsqlRowInputStream& rStream,
36 const std::vector<ColumnDefinition>& rColTypes, const OUString& sTableName,
37 sal_Int32 nIndexCount);
38 void parseTableRows(const std::vector<sal_Int32>& rIndexes,
39 const std::vector<ColumnDefinition>& rColTypes, const OUString& sTableName);
40
41public:
50 HsqlImporter(css::uno::Reference<css::sdbc::XConnection>& rConnection,
51 const css::uno::Reference<css::embed::XStorage>& rStorage);
52
56 void importHsqlDatabase(weld::Window* pParent);
57};
58}
59
60/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
css::uno::Reference< css::sdbc::XConnection > & m_rConnection
Definition: hsqlimport.hxx:29
css::uno::Reference< css::embed::XStorage > m_xStorage
Definition: hsqlimport.hxx:30