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.