本文整理汇总了C++中Database::GetFirstChildNode方法的典型用法代码示例。如果您正苦于以下问题:C++ Database::GetFirstChildNode方法的具体用法?C++ Database::GetFirstChildNode怎么用?C++ Database::GetFirstChildNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Database
的用法示例。
在下文中一共展示了Database::GetFirstChildNode方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnPopupClick
//.........这里部分代码省略.........
wxGetCwd(),
wxT(""),
wxT("SQL Files (*.sql)|*.sql"),
wxFD_OPEN | wxFD_FILE_MUST_EXIST);
if(dlg.ShowModal() == wxID_OK) {
ImportDb(dlg.GetPath(), pDb);
}
}
}
RefreshDbView();
} else if(evt.GetId() == XRCID("IDR_DBVIEWER_DUMP_DATABASE")) {
DbItem* data = (DbItem*)m_treeDatabases->GetItemData(m_selectedID);
if(data) {
Database* pDb = (Database*)wxDynamicCast(data->GetData(), Database);
if(pDb) {
// TODO:LANG:
wxFileDialog dlg(this,
_("Dump data into file ..."),
wxT(""),
pDb->GetName() + wxT(".sql"),
wxT("SQL files (*.sql)|*.sql"),
wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if(dlg.ShowModal() == wxID_OK) {
DumpClass* dump = new DumpClass(pDb->GetDbAdapter(), pDb, dlg.GetPath());
dump->DumpData();
wxMessageBox(_("Data was saved to ") + dlg.GetPath());
}
}
}
} else if(evt.GetId() == XRCID("IDR_DBVIEWER_EXPORT_DATABASE")) {
DbItem* data = (DbItem*)m_treeDatabases->GetItemData(m_selectedID);
if(data) {
Database* pDb = (Database*)wxDynamicCast(data->GetData(), Database);
if(pDb) {
wxFileDialog dlg(this,
_("Export database..."),
wxGetCwd(),
wxT(""),
wxT("SQL Files (*.sql)|*.sql"),
wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if(dlg.ShowModal() == wxID_OK) {
// CreateStructure
wxString retStr = wxT("-- SQL script created by wxDbExplorer\n\n ");
SerializableList::compatibility_iterator tabNode = pDb->GetFirstChildNode();
while(tabNode) {
Table* tab = wxDynamicCast(tabNode->GetData(), Table);
if(tab) {
retStr.append(pDb->GetDbAdapter()->GetCreateTableSql(tab, true));
}
tabNode = tabNode->GetNext();
}
tabNode = pDb->GetFirstChildNode();
while(tabNode) {
View* view = wxDynamicCast(tabNode->GetData(), View);
if(view) {
retStr.append(pDb->GetDbAdapter()->GetCreateViewSql(view, true));
}
tabNode = tabNode->GetNext();
}
tabNode = pDb->GetFirstChildNode();
while(tabNode) {
Table* tab = wxDynamicCast(tabNode->GetData(), Table);
if(tab) {
retStr.append(pDb->GetDbAdapter()->GetAlterTableConstraintSql(tab));
}
tabNode = tabNode->GetNext();
}
DumpClass dump(pDb->GetDbAdapter(), pDb, dlg.GetPath());
dump.DumpData();
wxTextFile file(dlg.GetPath());
if(!file.Exists()) file.Create();
file.Open();
if(file.IsOpened()) {
file.InsertLine(retStr, 0);
file.Write(wxTextFileType_None, wxConvUTF8);
file.Close();
}
wxMessageBox(
wxString::Format(_("The database has been exported to '%s'."), dlg.GetPath().GetData()),
_("wxDbExplorer"));
}
}
}
} else {
wxMessageBox(_("Sorry, requested feature isn't implemented yet. "), _("Sorry"));
}
} catch(DatabaseLayerException& e) {
wxString errorMessage = wxString::Format(_("Error (%d): %s"), e.GetErrorCode(), e.GetErrorMessage().c_str());
wxMessageDialog dlg(this, errorMessage, _("DB Error"), wxOK | wxCENTER | wxICON_ERROR);
dlg.ShowModal();
} catch(...) {
wxMessageDialog dlg(this, _("Unknown error."), _("DB Error"), wxOK | wxCENTER | wxICON_ERROR);
dlg.ShowModal();
}
}
示例2: RefreshDbView
void DbViewerPanel::RefreshDbView()
{
// Refresh all connections
wxTreeItemId root = m_treeDatabases->GetRootItem();
if(root.IsOk()) {
wxTreeItemIdValue cookie;
wxTreeItemId child = m_treeDatabases->GetFirstChild(root, cookie);
while(child.IsOk()) {
DbItem* data = (DbItem*)m_treeDatabases->GetItemData(child);
if(data) {
DbConnection* pCon = wxDynamicCast(data->GetData(), DbConnection);
if(pCon) pCon->RefreshChildren();
Database* pDb = wxDynamicCast(data->GetData(), Database);
if(pDb) pDb->RefreshChildren(false);
Table* pTab = wxDynamicCast(data->GetData(), Table);
if(pTab) pTab->RefreshChildren();
}
child = m_treeDatabases->GetNextChild(root, cookie);
}
}
// clear items from tree
m_treeDatabases->DeleteAllItems();
// create imageList for icons
wxImageList* pImageList = new wxImageList(16, 16, true, 3);
pImageList->Add(m_mgr->GetStdIcons()->LoadBitmap(wxT("toolbars/16/standard/file_open"))); // folder icon
pImageList->Add(m_mgr->GetStdIcons()->LoadBitmap(wxT("db-explorer/16/table"))); // table icon
pImageList->Add(m_mgr->GetStdIcons()->LoadBitmap(wxT("toolbars/16/search/find"))); // view icon
pImageList->Add(m_mgr->GetStdIcons()->LoadBitmap(wxT("db-explorer/16/database"))); // database
pImageList->Add(m_mgr->GetStdIcons()->LoadBitmap(wxT("db-explorer/16/column"))); // column
m_treeDatabases->AssignImageList(pImageList);
wxTreeItemId totalRootID = m_treeDatabases->AddRoot(wxString::Format(wxT("Databases")), -1);
// ---------------- load connections ----------------------------
SerializableList::compatibility_iterator connectionNode = m_pConnections->GetFirstChildNode();
while(connectionNode) {
DbConnection* pDbCon = (DbConnection*)wxDynamicCast(connectionNode->GetData(), DbConnection);
if(pDbCon) {
wxTreeItemId rootID =
m_treeDatabases->AppendItem(totalRootID,
wxString::Format(wxT("Databases (%s)"), pDbCon->GetServerName().c_str()),
3,
3,
new DbItem(pDbCon));
// ----------------------- load databases -------------------------------
SerializableList::compatibility_iterator dbNode = pDbCon->GetFirstChildNode();
while(dbNode) {
Database* pDatabase = wxDynamicCast(dbNode->GetData(), Database);
if(pDatabase) {
wxTreeItemId dbID =
m_treeDatabases->AppendItem(rootID, pDatabase->GetName(), 3, 3, new DbItem(pDatabase));
m_treeDatabases->Expand(rootID);
wxTreeItemId idFolder = m_treeDatabases->AppendItem(dbID, wxT("Tables"), 0, 0, NULL);
// m_treeDatabases->Expand(dbID);
// ----------------------------- load tables ----------------------------------
SerializableList::compatibility_iterator tabNode = pDatabase->GetFirstChildNode();
while(tabNode) {
Table* pTable = wxDynamicCast(tabNode->GetData(), Table);
if(pTable) {
// wxTreeItemId tabID = m_treeDatabases->AppendItem(idFolder,pTable->getName(),1,-1,new
// DbItem(NULL,pTable)); //NULL);
wxTreeItemId tabID = m_treeDatabases->AppendItem(idFolder,
pTable->GetName(),
1,
1,
new DbItem(pTable)); // NULL);
///////////////////////////////////////////////////////////
// Add the columns
///////////////////////////////////////////////////////////
SerializableList::compatibility_iterator columnNode = pTable->GetFirstChildNode();
while(columnNode) {
Column* col = wxDynamicCast(columnNode->GetData(), Column);
if(col) {
m_treeDatabases->AppendItem(
tabID, col->FormatName().c_str(), 4, 4, new DbItem(col));
}
columnNode = columnNode->GetNext();
}
}
tabNode = tabNode->GetNext();
}
// ----------------------------------------------------------------------------
idFolder = m_treeDatabases->AppendItem(dbID, wxT("Views"), 0, 0, NULL);
// m_treeDatabases->Expand(dbID);
// ----------------------------- load views ----------------------------------
tabNode = pDatabase->GetFirstChildNode();
while(tabNode) {
View* pView = wxDynamicCast(tabNode->GetData(), View);
if(pView) {
// wxTreeItemId tabID = m_treeDatabases->AppendItem(idFolder,pTable->getName(),1,-1,new
// DbItem(NULL,pTable)); //NULL);
m_treeDatabases->AppendItem(idFolder, pView->GetName(), 2, 2, new DbItem(pView)); // NULL);
}
tabNode = tabNode->GetNext();
//.........这里部分代码省略.........