示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
	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();
			}
		}
	}
示例#4
0
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());
}
示例#5
0
void CSQLite3Link::rollBack(void)
{
    (void)execDML("rollback transaction;");
}
示例#6
0
void CSQLite3Link::commitTransaction(void)
{
    (void)execDML("commit transaction;");
}
示例#7
0
void CSQLite3Link::Transaction(void)
{
    (void)execDML("begin transaction;");
}