static QSqlError qMakeError(sqlite3 *access, const QString &descr, QSqlError::ErrorType type,
                            int errorCode = -1)
{
    return QSqlError(descr,
                     QString(reinterpret_cast<const QChar *>(sqlite3_errmsg16(access))),
                     type, QString::number(errorCode));
}
Beispiel #2
0
static QSqlError qMakeError(sqlite3 *access, const QString &descr, QSqlError::ErrorType type,
                            int errorCode = -1)
{
    return QSqlError(descr,
                     QString::fromUtf16( (const ushort *) sqlite3_errmsg16(access) ),
                     type, errorCode);
}
Beispiel #3
0
static QSqlError qMakeError(sqlite3 *access, const QString &descr, QSqlError::ErrorType type,
                            int errorCode = -1)
{
    return QSqlError(descr,
                     stringFromUnicode(reinterpret_cast<const QChar *>(sqlite3_errmsg16(access))),
                     type, errorCode);
}
Beispiel #4
0
extern "C" HANDLE __stdcall ExecuteCommand(HANDLE hDB, WCHAR * szCommand, HANDLE hBind)
{
    RowsRet * pRows = new RowsRet();
    pRows->nCount = 0;

    BindHandle * bind = (BindHandle*) hBind;
    DbHandle * dbh = (DbHandle*) hDB;

    char * szErrMsg = NULL;
    int rc = sqlite3_exec_utf16(dbh->db, 
        szCommand, 
        StoreCallback, 
        pRows,
        bind);

    if (rc != SQLITE_OK)
    {
        if (dbh->szLastError)
        {
            delete dbh->szLastError;
        }
        WCHAR * szErr = (WCHAR*) sqlite3_errmsg16(dbh->db);
        size_t nLen = wcslen(szErr) + 1;
        dbh->szLastError = new WCHAR[nLen];
        wcscpy_s(dbh->szLastError, nLen, szErr);

        delete pRows;
        pRows = NULL;
    }

    return (HANDLE)pRows;
}
Beispiel #5
0
static void HL_NAME(error)( sqlite3 *db, bool close ) {
	hl_buffer *b = hl_alloc_buffer();
	hl_buffer_str(b, USTR("SQLite error: "));
	hl_buffer_str(b, sqlite3_errmsg16(db));
	if ( close )
		sqlite3_close(db);
	hl_error_msg(hl_buffer_content(b, NULL));
}
/*!
	SQLiteのエラー情報を出刃愚兎淫怒兎に表示
	@param[in]	*psqTarget	エラーチェキしたいデタベス
	@param[in]	dline		呼び出した地点の行数
*/
VOID SqlErrMsgView( sqlite3 *psqTarget, DWORD dline )
{
	//TCHAR	atStr[MAX_PATH];	//	そんなバッファ容量で大丈夫か
	//StringCchPrintf( atStr, MAX_PATH, TEXT("%s[%u]\r\n"), sqlite3_errmsg16( psqTarget ), dline );
	//OutputDebugString( atStr );
	TRACE( TEXT("%s[%u]"), sqlite3_errmsg16( psqTarget ), dline );
	return;
}
Beispiel #7
0
// 获取上一条错误信息
LPCTSTR SQLite::GetLastErrorMsg()
{
#ifdef UNICODE 
	return (LPCTSTR)sqlite3_errmsg16(m_db);
#else
	return sqlite3_errmsg(m_db);
#endif
}
Beispiel #8
0
static void test_agg_errmsg16_final(sqlite3_context *ctx){
#ifndef SQLITE_OMIT_UTF16
  const void *z;
  sqlite3 * db = sqlite3_context_db_handle(ctx);
  sqlite3_aggregate_context(ctx, 2048);
  sqlite3BeginBenignMalloc();
  z = sqlite3_errmsg16(db);
  sqlite3EndBenignMalloc();
  sqlite3_result_text16(ctx, z, -1, SQLITE_TRANSIENT);
#endif
}
ikptr
ik_sqlite3_errmsg16 (ikptr s_conn, ikpcb * pcb)
{
#ifdef HAVE_SQLITE3_ERRMSG16
  sqlite3 *	conn = IK_SQLITE_CONNECTION(s_conn);
  const void *	rv;
  rv = sqlite3_errmsg16(conn);
  return ika_bytevector_from_cstring(pcb, rv);
#else
  feature_failure(__func__);
#endif
}
Beispiel #10
0
		bool					sqlite_db::step()
		{
			if(!_stmt)
				return false;
			sqlite3_stmt* stmt=(sqlite3_stmt*)_stmt;
			int ret=sqlite3_step(stmt);
			if(ret==SQLITE_DONE)
			{
				if(sqlite3_column_count(stmt))
					_array_res.push_back(sqlite_res());						// check if the statement will produce resultset, add a blank even if no rows to keep consistent
				return true;
			}
			if(ret!=SQLITE_ROW)
			{
				_err_msg=(const wchar_t*)sqlite3_errmsg16((sqlite3*)_handle);
				return false;
			}

			if(ret==SQLITE_ROW)
				_array_res.push_back(sqlite_res());
			sqlite_res& res=*(_array_res.end()-1);
			int row=0;
			while(ret==SQLITE_ROW)
			{
				res._res.push_back(vector<sqlite_res::VALUE>());
				int i;
				int count=sqlite3_column_count(stmt);
				for(i=0;i<count;++i)
				{
					res._res[row].push_back(sqlite_res::VALUE());
					int type=sqlite3_column_type(stmt,i);
					if(type==SQLITE_NULL)
						continue;
					if(type==SQLITE_BLOB)
					{
						if(!sqlite3_column_bytes(stmt,i))
							continue;
						vector<char>& blob=res._res[row][i].blob;
						blob.resize(sqlite3_column_bytes(stmt,i));
						memcpy(&blob[0],sqlite3_column_blob(stmt,i),sqlite3_column_bytes(stmt,i));
						continue;
					}
					res._res[row][i].text=(const wchar_t*)sqlite3_column_text16(stmt,i);
				}
				++row;
				ret=sqlite3_step(stmt);
			}
			return true;
		}
Beispiel #11
0
void Session::_HandleResult(int result_code) const
{
	if(result_code != SQLITE_OK && result_code != SQLITE_ROW && result_code != SQLITE_DONE)
	{
		CString errorMessage;
		TCHAR *error;
#ifdef UNICODE
		error = (TCHAR*)sqlite3_errmsg16(m_dbHandle);
#else
		error = sqlite3_errmsg(handle);
#endif
		errorMessage = error;
		throw SessionException(errorMessage);
	}
}
Beispiel #12
0
		bool					sqlite_db::prepare()									// call this method will prepare the next statement in the previous query, return true means successful and can continue
		{
			_err_msg=L"";
			if(_stmt)
				sqlite3_finalize((sqlite3_stmt*)_stmt);
			_stmt=NULL;

			if(!_prepare_remains.length())
			{
				_err_msg=(const wchar_t*)sqlite3_errmsg16((sqlite3*)_handle);
				return false;
			}

			const wchar_t* remains=NULL;
			sqlite3_prepare16_v2((sqlite3*)_handle,_prepare_remains.c_str(),(int)(_prepare_remains.length()<<1),(sqlite3_stmt**)&_stmt,(const void**)&remains);
			if(!_stmt)
				return false;

			_prepare_remains=_prepare_remains.substr(remains-_prepare_remains.c_str());

			return true;
		}
Beispiel #13
0
static JSVAL sqlite_errmsg16(JSARGS args) {
    HandleScope scope;
    Local<External>wrap = Local<External>::Cast(args[0]);
    sqlite3 *db = (sqlite3 *)wrap->Value();
    return scope.Close(String::New((char *)sqlite3_errmsg16(db)));
}