void wxFileConfig::Init() { m_pCurrentGroup = m_pRootGroup = new ConfigGroup(NULL, "", this); m_linesHead = m_linesTail = NULL; // it's not an error if (one of the) file(s) doesn't exist // parse the global file if ( !m_strGlobalFile.IsEmpty() && wxFile::Exists(m_strGlobalFile) ) { wxTextFile fileGlobal(m_strGlobalFile); if ( fileGlobal.Open() ) { Parse(fileGlobal, FALSE /* global */); SetRootPath(); } else wxLogWarning(_("can't open global configuration file '%s'."), m_strGlobalFile.c_str()); } // parse the local file if ( !m_strLocalFile.IsEmpty() && wxFile::Exists(m_strLocalFile) ) { wxTextFile fileLocal(m_strLocalFile); if ( fileLocal.Open() ) { Parse(fileLocal, TRUE /* local */); SetRootPath(); } else wxLogWarning(_("can't open user configuration file '%s'."), m_strLocalFile.c_str()); } }
bool Renderer::LoadXmlFile(const String& filename) { m_rootelem.reset(); TiXmlDocument doc; URI uri = URI::Parse(filename); if (uri.scheme == URI::SchemeFile) { if (!TiXmlDocumentLoadFileW(doc, filename.c_str(), TIXML_ENCODING_UTF8)) return false; } else if (uri.scheme == URI::SchemeRes) { LibCC::Blob<BYTE> blob; if (!LoadResourceData(_Module.GetResourceInstance(), uri.path.c_str(), L"FILE", blob, true)) return false; doc.Parse(reinterpret_cast<const char*>(blob.GetBuffer()), 0, TIXML_ENCODING_UTF8); } TiXmlElement* root = doc.FirstChildElement(); if (root != NULL) { if (ElementPtr ptr = Element::FromXmlNode(this, root)) { m_rootelem = ptr; SetRootPath(LibCC::PathRemoveFilename(filename)); return true; } } return false; }
/* * CD / CHDIR * */ INT cmd_chdir (LPTSTR param) { TCHAR szCurrent[MAX_PATH]; BOOL bChangeDrive = FALSE; /* Filter out special cases first */ /* Print Help */ if (!_tcsncmp(param, _T("/?"), 2)) { ConOutResPaging(TRUE,STRING_CD_HELP); return 0; } /* Remove " */ StripQuotes(param); /* Set Error Level to Success */ nErrorLevel = 0; /* Print Current Directory on a disk */ if (_tcslen(param) == 2 && param[1] == _T(':')) { if (GetRootPath(param, szCurrent, MAX_PATH)) { error_invalid_drive(); return 1; } ConOutPuts(szCurrent); return 0; } /* Get Current Directory */ GetCurrentDirectory(MAX_PATH, szCurrent); if (param[0] == _T('\0')) { ConOutPuts(szCurrent); return 0; } /* Input String Contains /D Switch */ if (!_tcsncicmp(param, _T("/D"), 2)) { bChangeDrive = TRUE; param += 2; while (_istspace(*param)) param++; } if (!SetRootPath(bChangeDrive ? NULL : szCurrent, param)) return 1; return 0; }
wxObjectFolderTree::wxObjectFolderTree(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name) : wxFileTree(parent, id, pos, size, style, validator, name) { wxArrayString extensions; extensions.Add("*.ot"); extensions.Add("*.ocs"); SetExtensions(extensions); SetRootPath("Data\\Editor\\Objects"); //wxEdit::Instance().GetExplorerToolbar()->RegisterTool("NewFolder", "ResourceMgr", "Data/Editor/Intern/1988.ico", wxObjectFolderTree::OnToolbarEvent); wxEdit::Instance().GetExplorerToolbar()->RegisterTool("NewResource", "ResourceMgr", "Data/Editor/Intern/Engine_Icon07.png", wxObjectFolderTree::OnToolbarEvent, "New object resource"); wxEdit::Instance().GetExplorerToolbar()->SetGroupStatus("ResourceMgr", true); //wxEdit::Instance().GetExplorerToolbar()->SetGroupStatus("ResourceMgr", false); }
void nuiFileTree::Init(const nglPath& rPath, const nglPath& rRootPath, const std::list<nglString>& rFilters, bool showHiddenFiles) { if (SetObjectClass(_T("nuiFileTree"))) InitAttributes(); SetObjectName(_T("nuiFileTree")); mpFileBox = NULL; mpTreeView = NULL; mShowHiddenFiles = showHiddenFiles; mFilters = rFilters; mpCurrentTree = NULL; SetRootPath(rRootPath); SetPath(rPath); }
void nuiFileTree::OnNodeActivated(const nuiEvent& rEvent) { nuiFileSelectorNode* pNode = (nuiFileSelectorNode*)rEvent.mpUser; nglPath path(pNode->GetProperty(_T("Path"))); mActivatedPath = path; // send signal bool res = Activated(); if (!res && !path.IsLeaf() && !path.IsBundle()) { SetRootPath(path); SetPath(path); } rEvent.Cancel(); }
void nuiFileTree::OnGotoParentFolder(const nuiEvent& rEvent) { nglPath path = mRootPath; nglPath parent = mRootPath.GetParent(); // hack to see "/Volumes" as the ROOTPATH_ALLVOLUMES if ((mRootPath.GetPathName() == _T("/")) || ((mRootPath.GetPathName().GetLength() > 1) && (mRootPath.GetPathName().Extract(mRootPath.GetPathName().GetLength()-2, 2) == _T(":/")))) { parent = ROOTPATH_ALLVOLUMES; path = nglPath(_T("/")); } SetRootPath(parent); SetPath(path); rEvent.Cancel(); }
/* * pushd command */ INT CommandPushd (LPTSTR rest) { TCHAR curPath[MAX_PATH]; if (!_tcsncmp (rest, _T("/?"), 2)) { ConOutResPuts(STRING_DIRSTACK_HELP1); return 0; } GetCurrentDirectory (MAX_PATH, curPath); if (rest[0] != _T('\0')) { if (!SetRootPath(NULL, rest)) return 1; } return PushDirectory(curPath); }
STDMETHODIMP CAtlBase::Init3DEngineManager(BSTR strStartUpPath, LONG ihWnd) { // TCHAR dllpath[MAX_PATH]; // //StrCpyN(dllpath, TEXT("KG3DEngineSD.dll"), MAX_PATH); // sprintf(g_szStartUpDirectory, BSTR_TO_STRING(strStartUpPath)); // sprintf(dllpath, BSTR_TO_STRING(strStartUpPath)); // strcat(dllpath, "/3DProxy/"); // g_SetRootPath(dllpath); //#ifdef _DEBUG // strcat(dllpath, "KG3DEngineS.dll"); //#else // strcat(dllpath, "KG3DEngineS.dll"); //#endif SetRootPath(STRING_TO_BSTR(g_szDefWorkDirectory)); //MessageBox(NULL, "pre load kg3dEngine.dll", "info", 0); #ifdef _DEBUG g_EngineDll = LoadLibrary("KG3DEngineD.dll"); #else g_EngineDll = LoadLibrary("KG3DEngine.dll"); #endif if (!g_EngineDll) MessageBox(NULL, "加载KG3DEngine失败", "失败", 0); typedef HRESULT (*pfnGet3DEngineInterface)(void**); pfnGet3DEngineInterface Get3DEngineInterface = (pfnGet3DEngineInterface)GetProcAddress(g_EngineDll, "Get3DEngineInterface"); Get3DEngineInterface((void**)&g_pEngineManager); //MessageBox(NULL, "pre g_pEngineManager->Init", "info", 0); g_pEngineManager->Init(0, KG3DENG_DESIGN, (HWND)ihWnd, (HWND)ihWnd); g_pEngineManager->SetAutoReloadTexture(TRUE); BOOL* pbEnable = NULL; g_pEngineManager->GetEnableAddEntity(&pbEnable); *pbEnable = FALSE; return S_OK; }
void wxDatabaseConfig::SetPath(const wxString& strPath) { if (strPath.empty() || strPath.IsSameAs(wxCONFIG_PATH_SEPARATOR)) { SetRootPath(m_entry); return; } dbentries entries; wxString path = strPath; // let's be optimistic, most calls should be to existing paths! if (!FindEntries(path, entries)) { if (path[0] != wxCONFIG_PATH_SEPARATOR) { path = m_entry.path + wxCONFIG_PATH_SEPARATOR + path; } wxArrayString paths(wxSplit(path, wxCONFIG_PATH_SEPARATOR)); path.Empty(); for (size_t n = 0; n < paths.Count(); n++) { if (paths[n].IsSameAs(wxEmptyString)) continue; path += wxCONFIG_PATH_SEPARATOR+paths[n]; if (!FindEntries(path, entries)) { if (!AddEntry(m_entry, paths[n])) return; if (!FindEntries(path, entries)) return; } m_entry = entries[0]; entries.clear(); } } else { m_entry = entries[0]; } }
bool wxDatabaseConfig::FindEntries(const wxString& nameORpath, dbentries& entries) { if (nameORpath.empty()) return false; wxString path = nameORpath; if (path[0] != wxCONFIG_PATH_SEPARATOR) { path = m_entry.path + wxCONFIG_PATH_SEPARATOR + path; } if (path.Contains("..") || path.Contains(".")) { wxArrayString in(wxSplit(path, wxCONFIG_PATH_SEPARATOR)); wxArrayString out; size_t count = in.GetCount(); for (size_t n = 0; n < count; n++) { wxString name = in[n]; if (name.IsSameAs(wxEmptyString)) continue; if (name == ".") continue; if (name == ".." && !out.empty()) { out.pop_back(); continue; } out.Add(name); } path = wxCONFIG_PATH_SEPARATOR+wxJoin(out, wxCONFIG_PATH_SEPARATOR); } if (path.IsSameAs(wxCONFIG_PATH_SEPARATOR)) { dbentry root; SetRootPath(root); entries.push_back(root); } m_pStatementSqlFindEntries->SetParamString(1, path); m_self->ExecuteStatement(m_pStatementSqlFindEntries, &entries); return (entries.size() > 0); }
void wxFileConfig::SetPath(const wxString& strPath) { wxArrayString aParts; if ( strPath.IsEmpty() ) { SetRootPath(); return; } if ( strPath[0] == wxCONFIG_PATH_SEPARATOR ) { // absolute path wxSplitPath(aParts, strPath); } else { // relative path, combine with current one wxString strFullPath = m_strPath; strFullPath << wxCONFIG_PATH_SEPARATOR << strPath; wxSplitPath(aParts, strFullPath); } // change current group size_t n; m_pCurrentGroup = m_pRootGroup; for ( n = 0; n < aParts.Count(); n++ ) { ConfigGroup *pNextGroup = m_pCurrentGroup->FindSubgroup(aParts[n]); if ( pNextGroup == NULL ) pNextGroup = m_pCurrentGroup->AddSubgroup(aParts[n]); m_pCurrentGroup = pNextGroup; } // recombine path parts in one variable m_strPath.Empty(); for ( n = 0; n < aParts.Count(); n++ ) { m_strPath << wxCONFIG_PATH_SEPARATOR << aParts[n]; } }
static bool ExecuteCmd(hkxcmdLine &cmdLine) { string outpath; int argc = cmdLine.argc; char **argv = cmdLine.argv; hkSerializeUtil::SaveOptionBits flags = (hkSerializeUtil::SaveOptionBits)(hkSerializeUtil::SAVE_TEXT_FORMAT|hkSerializeUtil::SAVE_TEXT_NUMBERS); list<hkxcmd *> plugins; #pragma region Handle Input Args for (int i = 0; i < argc; i++) { char *arg = argv[i]; if (arg == NULL) continue; if (arg[0] == '-' || arg[0] == '/') { switch (tolower(arg[1])) { case 'd': { const char *param = arg+2; if (*param == ':' || *param=='=') ++param; argv[i] = NULL; if ( param[0] == 0 && ( i+1<argc && ( argv[i+1][0] != '-' || argv[i+1][0] != '/' ) ) ) { param = argv[++i]; argv[i] = NULL; } if ( param[0] == 0 ) { Log::SetLogLevel(LOG_DEBUG); break; } else { Log::SetLogLevel((LogLevel)StringToEnum(param, LogFlags, LOG_INFO)); } } break; case 'o': { const char *param = arg+2; if (*param == ':' || *param=='=') ++param; argv[i] = NULL; if ( param[0] == 0 && ( i+1<argc && ( argv[i+1][0] != '-' || argv[i+1][0] != '/' ) ) ) { param = argv[++i]; argv[i] = NULL; } if ( param[0] == 0 ) break; if (outpath.empty()) { outpath = param; } else { Log::Error("Output file already specified as '%s'", outpath.c_str()); } } break; default: Log::Error("Unknown argument specified '%s'", arg); break; } } else if (outpath.empty()) { outpath = arg; } } #pragma endregion if (outpath.empty()){ HelpString(hkxcmd::htLong); return false; } hkMallocAllocator baseMalloc; // Need to have memory allocated for the solver. Allocate 1mb for it. hkMemoryRouter* memoryRouter = hkMemoryInitUtil::initDefault( &baseMalloc, hkMemorySystem::FrameInfo(1024 * 1024) ); hkBaseSystem::init( memoryRouter, errorReport ); // Normally all the patches would be added to the global singleton but // for this example we'll use a private manager to keep the scope small // and not leave useless patches in the global registry { hkVersionPatchManager patchManager; { extern void HK_CALL CustomRegisterPatches(hkVersionPatchManager& patchManager); CustomRegisterPatches(patchManager); } hkDefaultClassNameRegistry &dynamicRegistry = hkDefaultClassNameRegistry::getInstance(); { extern void HK_CALL CustomRegisterDefaultClasses(); extern void HK_CALL ValidateClassSignatures(); CustomRegisterDefaultClasses(); ValidateClassSignatures(); } SetRootPath(outpath.c_str()); DumpClassesAll(); } hkBaseSystem::quit(); hkMemoryInitUtil::quit(); return true; }
void JBoundsEditor::Refresh() { JString path = m_RootPath; m_RootPath = ""; SetRootPath( path.c_str() ); }
void JBoundsEditor::Init() { SetRootPath( m_RootPath.c_str() ); }
bool wxDatabaseConfig::DeleteAll() { this->ExecuteStatement(m_pStatementSqlDropAll); SetRootPath(m_entry); return true; }
bool wxDatabaseConfig::LoadStream(wxInputStream& inStream, wxString* err) { SetRootPath(m_entry); if (m_viewName.IsEmpty()) { m_viewName = m_self->GetAppName(); if (m_viewName.IsEmpty()) { m_viewName = viewname_default; } } m_viewName.Replace(wxCONFIG_PATH_SEPARATOR, wxEmptyString); if (!inStream.CanRead()) { if (err) err->Append("can't read"); return false; } wxFileConfig config(inStream); /* SQLite doesn't support stored procedures nor recursion. The best compromise between all the flavours of databases is to store the group paths as a closure set and to access the groups and entries via a view with triggers instead of accessing the underlying tables directly. table "tablename_entry" contains the rows for both group names and entry name/values table "tablename_path" contains a closure set for the group paths view "viewname" (and its associated triggers) provide the interface used by this code */ wxString sqlCreateTablePath; wxString sqlCreateTableEntry; wxString sqlCreateViewPath; wxString sqlCreateTriggerInsteadOfInsertViewPath; wxString sqlCreateTriggerInsteadOfUpdateViewPath; wxString sqlCreateTriggerInsteadOfDeleteViewPath; wxString sqlAddEntry; wxString sqlDelEntry; wxString sqlEditEntry; wxString sqlFindEntries; wxString sqlDropAll; // should work on all DBs? sqlCreateTablePath << "IF NOT EXISTS (SELECT * FROM sys.views WHERE name = '" << viewname <<"') " "AND NOT EXISTS (SELECT * FROM sys.objects WHERE type IN ('U') AND name = '" << tablename_path << "') EXECUTE('" "CREATE TABLE " << tablename_path << "(" "pid INT NOT NULL," "id INT NOT NULL," "PRIMARY KEY (pid, id)," "FOREIGN KEY (pid) REFERENCES " << tablename_entry << "(id)," "FOREIGN KEY (id) REFERENCES " << tablename_entry << "(id)" ")" "')" ; sqlCreateTableEntry << "IF NOT EXISTS (SELECT * FROM sys.views WHERE name = '" << viewname <<"') " "AND NOT EXISTS (SELECT * FROM sys.objects WHERE type IN ('U') AND name = '" << tablename_entry <<"') EXECUTE('" "CREATE TABLE " << tablename_entry << "(" "id INT IDENTITY PRIMARY KEY," "name VARCHAR(255) NOT NULL," "value VARCHAR(255) NULL" ")" "')" ; sqlAddEntry << "INSERT INTO " << viewname <<" (id, name, value) VALUES (?, ?, ?)" ; sqlDelEntry << "DELETE FROM " << viewname <<" WHERE id = ?" ; sqlEditEntry << "UPDATE " << viewname <<" SET name = ?, value = ? WHERE id = ?" ; sqlFindEntries << "SELECT id, name, value, path, isgroup FROM " << viewname <<" WHERE path LIKE ?" ; sqlDropAll << "DROP VIEW " << viewname <<"\n" "DROP TABLE " << tablename_path <<"\n" "DROP TABLE " << tablename_entry <<"\n" ; sqlCreateTriggerInsteadOfInsertViewPath << "IF NOT EXISTS (SELECT * FROM sys.triggers WHERE name = '" << triggername_insertviewpath <<"') EXECUTE('\n" "CREATE TRIGGER [" << triggername_insertviewpath <<"] ON " << viewname <<" INSTEAD OF INSERT\n" "AS\n" "BEGIN\n" "\tINSERT INTO " << tablename_entry <<" (name, value) SELECT i.name, i.value FROM inserted i\n" "\tINSERT INTO " << tablename_path <<" (pid, id)\n" "\tSELECT p.pid, (SELECT MAX(id) FROM " << tablename_entry <<")\n" "\tFROM\n" "\t\t" << tablename_path <<" p\n" "\t\tJOIN inserted i ON p.id = i.id -- treat i.id as the pid p\n" "\tUNION\n" "\tSELECT MAX(id), MAX(id) FROM " << tablename_entry <<"\n" //"\tSELECT id, name, value FROM " << tablename_entry <<" WHERE id IN (SELECT MAX(id) FROM " << tablename_entry <<")\n" "END\n" "')" ; sqlCreateTriggerInsteadOfUpdateViewPath << "IF NOT EXISTS (SELECT * FROM sys.triggers WHERE name = '" << triggername_updateviewpath <<"') EXECUTE('\n" "CREATE TRIGGER [" << triggername_updateviewpath <<"] ON " << viewname <<" INSTEAD OF UPDATE\n" "AS\n" "BEGIN\n" "\tUPDATE " << tablename_entry <<" SET\n" "\t\t" << tablename_entry <<".name = i.name,\n" "\t\t" << tablename_entry <<".value = CASE WHEN " << tablename_entry <<".value IS NULL THEN NULL ELSE i.value END\n" "\tFROM\n" "\t\tinserted i\n" "\tWHERE\n" "\t\t" << tablename_entry <<".id = i.id\n" //"\tSELECT e.id, e.name, e.value FROM " << tablename_entry <<" e JOIN inserted i ON i.id = e.id\n" "END\n" "')" ; sqlCreateTriggerInsteadOfDeleteViewPath << "IF NOT EXISTS (SELECT * FROM sys.triggers WHERE name = '" << triggername_deleteviewpath <<"') EXECUTE('\n" "CREATE TRIGGER [" << triggername_deleteviewpath <<"] ON " << viewname <<" INSTEAD OF DELETE\n" "AS\n" "BEGIN\n" "\tDELETE p\n" "\tFROM\n" "\t\t" << tablename_path <<" c\n" "\t\tJOIN " << tablename_path <<" p ON p.id = c.id\n" "\t\tJOIN deleted d ON c.pid = d.id -- treat d.id as the id\n" "\tDELETE e\n" "\tFROM\n" "\t\t" << tablename_entry <<" e\n" "\tWHERE\n" "\t\te.id NOT IN (SELECT id FROM " << tablename_path <<")\n" "END\n" "')" ; m_pDatabase = wxDatabase::GetDatabase(config, err); if (m_pDatabase == NULL) { if (err) err->Append("cannot establish database connection from"); return false; } // if necessary add the database library path to the system path if (!m_pDatabase->GetLibraryPath().IsEmpty()) { wxString path; wxGetEnv("PATH", &path); #ifdef WIN32 path.Append(";"); #else path.Append(":"); #endif path.Append(m_pDatabase->GetLibraryPath()); wxSetEnv("PATH", path); } if (false); #if wxUSE_DATABASE_SQLITE else if (m_pDatabase->GetTypeName().IsSameAs("SQLITE")) { sqlCreateViewPath << "IF NOT EXISTS (SELECT * FROM sys.views WHERE name = '" << viewname <<"') EXECUTE('" "CREATE VIEW [" << viewname <<"]\n" "AS\n" "SELECT\n" "\te.id,\n" "\te.name,\n" "\te.value,\n" "\tCONVERT(VARCHAR(255), (\n" "\t\tSELECT\n" "\t\t\t''/''+dbo.GROUP_CONCAT_D(ie.name, ''/'')\n" "\t\tFROM\n" "\t\t\t" << tablename_path <<" ic\n" "\t\t\tJOIN " << tablename_path <<" ip ON ip.id = ic.pid\n" "\t\t\tJOIN " << tablename_entry <<" ie ON ie.id = ip.pid\n" "\t\tWHERE\n" "\t\t\tic.id = ic.pid\n" "\t\t\tAND\n" "\t\t\tic.id = c.id\n" "\t\tGROUP BY\n" "\t\t\tic.id\n" "\t)) AS [path],\n" "\tCASE WHEN e.value IS NULL THEN 1 ELSE 0 END AS [isgroup]\n" "FROM\n" "\t" << tablename_path <<" c\n" "\tJOIN " << tablename_entry <<" e ON e.id = c.id\n" "WHERE\n" "\tc.id = c.pid\n" "')" ; } #endif #if wxUSE_DATABASE_POSTGRESQL else if (m_pDatabase->GetTypeName().IsSameAs("POSTGRESQL")) { } #endif #if wxUSE_DATABASE_MYSQL else if (m_pDatabase->GetTypeName().IsSameAs("MYSQL")) { } #endif #if wxUSE_DATABASE_ODBC else if (m_pDatabase->GetTypeName().IsSameAs("ODBC")) { } #endif #if wxUSE_DATABASE_TDS else if (m_pDatabase->GetTypeName().IsSameAs("TDS")) { sqlCreateViewPath << "IF NOT EXISTS (SELECT * FROM sys.views WHERE name = '" << viewname <<"') EXECUTE('" "CREATE VIEW [" << viewname <<"]\n" "AS\n" "SELECT\n" "\te.id,\n" "\te.name,\n" "\te.value,\n" "\tCONVERT(VARCHAR(255), (\n" "\t\tSELECT\n" "\t\t\t''/''+e.name AS [text()]\n" "\t\tFROM\n" "\t\t\t" << tablename_path <<" p\n" "\t\t\tJOIN " << tablename_entry <<" e ON e.id = p.pid\n" "\t\tWHERE\n" "\t\t\tp.id = c.pid\n" "\t\tFOR XML PATH('''')\n" "\t)) AS [path],\n" "\tCASE WHEN e.value IS NULL THEN 1 ELSE 0 END AS [isgroup]\n" "FROM\n" "\t" << tablename_path <<" c\n" "\tJOIN " << tablename_entry <<" e ON e.id = c.id\n" "WHERE\n" "\tc.id = c.pid\n" "')" ; } #endif m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateTableEntry))); m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateTablePath))); m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateViewPath))); m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateTriggerInsteadOfInsertViewPath))); m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateTriggerInsteadOfUpdateViewPath))); m_pDatabase->CloseStatement(this->ExecuteStatement(this->PrepareStatement(sqlCreateTriggerInsteadOfDeleteViewPath))); m_pStatementSqlAddEntry = this->PrepareStatement(sqlAddEntry); m_pStatementSqlDelEntry = this->PrepareStatement(sqlDelEntry); m_pStatementSqlEditEntry = this->PrepareStatement(sqlEditEntry); m_pStatementSqlFindEntries = this->PrepareStatement(sqlFindEntries); m_pStatementSqlDropAll = this->PrepareStatement(sqlDropAll); return true; }