/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
Sequence<OUString> sTableTypes{
u"VIEW"_ustr, u"TABLE"_ustr, u"%"_ustr
}; // this last one just to be sure to include anything else...
Any aCatalog; if (!sCatalog.isEmpty())
aCatalog <<= sCatalog;
Reference<XResultSet> xResult = m_xMetaData->getTables(aCatalog, sSchema, sTable, sTableTypes);
rtl::Reference<OMySQLTable> xRet; if (xResult.is())
{
Reference<XRow> xRow(xResult, UNO_QUERY); if (xResult->next()) // there can be only one table with this name
{
sal_Int32 const nPrivileges = Privilege::DROP | Privilege::REFERENCE | Privilege::ALTER
| Privilege::CREATE | Privilege::READ | Privilege::DELETE
| Privilege::UPDATE | Privilege::INSERT
| Privilege::SELECT;
Reference<XPropertySet> xProp(xObject, UNO_QUERY); bool bIsView = xProp.is()
&& ::comphelper::getString(xProp->getPropertyValue(
OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))
== "VIEW"; if (bIsView) // here we have a view
aSql += "VIEW "; else
aSql += "TABLE ";
OUString sComposedName(::dbtools::composeTableName(
m_xMetaData, sCatalog, sSchema, sTable, true, ::dbtools::EComposeRule::InDataManipulation));
aSql += sComposedName;
Reference<XStatement> xStmt = xConnection->createStatement(); if (xStmt.is())
{
xStmt->execute(aSql);
::comphelper::disposeComponent(xStmt);
} // if no exception was thrown we must delete it from the views if (bIsView)
{
OViews* pViews
= static_cast<OViews*>(static_cast<OMySQLCatalog&>(m_rParent).getPrivateViews()); if (pViews && pViews->hasByName(_sElementName))
pViews->dropByNameImpl(_sElementName);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.