int CppSQLite3DB::execDMLEx(LPCTSTR szSQL,...) { CString csText; va_list vlist; ASSERT(AfxIsValidString(szSQL)); va_start(vlist,szSQL); csText.FormatV(szSQL,vlist); va_end(vlist); return execDML(csText); }
void ExecuteDMLData::Work() { TSTRACEAUTO(); int nErrCode = -1; if (Init()) { nErrCode = m_pfn_sqlite3_open_v2(m_strDBPath.c_str(),&m_db,m_OpenFlag,NULL); if (SQLITE_OK == nErrCode) { nErrCode = execDML(m_strSQL.c_str(),m_bQuery); db_close(); } else { TSDEBUG(_T("open database failed,error code is %lu"),nErrCode); }; } g_wndMsg.PostMessage(WM_SQLITE3, nErrCode, (LPARAM)this); }
void BaseDatabaseUnitImpl::runTransaction(std::vector<CppSQLite3Statement> & statements) { if (beginTransaction()) { try { for (auto it = statements.begin(); it != statements.end(); ++it) { it->execDML(); } commitTransaction(); } catch (CppSQLite3Exception e) { LOG_ERR_R(DATABASE_MANAGER_LOG_TAG, _T("Failed to run transaction, error: %u"), e.errorCode()); LOG_ERR_D_A(DATABASE_MANAGER_LOG_TAG_A, "Message: %s", e.errorMessage()); rollbackTransaction(); } } }
int CppSQLite3DB::execDML(const wchar_t* szSQL) { /*int nLen = sizeof(char)*wcslen(szSQL)*2+3; char *chSQL = (char*)malloc(nLen); int result; if (wcstombs(chSQL, szSQL, nLen)==-1) { free(chSQL); throw CppSQLite3Exception(0, "Failed to convert query to multi-byte charset."); } else { try { result = execDML(chSQL); free(chSQL); return result; } catch (CppSQLite3Exception &e) { free(chSQL); throw e; } }*/ CStringA ansi(szSQL); return execDML(ansi.GetBuffer()); }
void CSQLite3Link::rollBack(void) { (void)execDML("rollback transaction;"); }
void CSQLite3Link::commitTransaction(void) { (void)execDML("commit transaction;"); }
void CSQLite3Link::Transaction(void) { (void)execDML("begin transaction;"); }