Sha256: fc653aed2bb94945db65180c1fa74c700eac21dc02c6543420106f2a1956a41d

Contents?: true

Size: 1.88 KB

Versions: 15

Compression:

Stored size: 1.88 KB

Contents

#pragma once

#include "common/RhoStd.h"
#include "common/AutoPointer.h"
#include "common/RhoMutexLock.h"
#include "sqlite/sqlite3.h"

namespace rho{
namespace db{

class CDBAdapter;
class CDBResult
{
    CDBAdapter* m_pDB;
    sqlite3_stmt* m_dbStatement;
    boolean m_bReportNonUnique;
    int     m_nErrorCode;
public:
    CDBResult(sqlite3_stmt* st,CDBAdapter* pDB);
    CDBResult();
    ~CDBResult(void);

    void setStatement(sqlite3_stmt* st);
    sqlite3_stmt* getStatement(){ return m_dbStatement; }
    boolean getReportNonUnique(){ return m_bReportNonUnique; }
    void setReportNonUnique(boolean bSet){ m_bReportNonUnique = bSet; }
    boolean isNonUnique(){ return m_nErrorCode==SQLITE_CONSTRAINT; }
    boolean isError(){ return m_nErrorCode!=SQLITE_OK; }
    int     getErrorCode(){ return m_nErrorCode; }
    void    setErrorCode(int nError){ m_nErrorCode=nError; }

    virtual bool isEnd(){ return m_dbStatement == null; }
    void next()
    {
        if ( sqlite3_step(m_dbStatement) != SQLITE_ROW )
            setStatement(null);
    }

    virtual String getStringByIdx(int nCol)
    {
        char* res = (char *)sqlite3_column_text(m_dbStatement, nCol);
        return res ? res : String();
    }

    int getIntByIdx(int nCol)
    {
        return sqlite3_column_int(m_dbStatement, nCol);
    }

    uint64 getUInt64ByIdx(int nCol)
    {
        return sqlite3_column_int64(m_dbStatement, nCol);
    }

    int getColCount()
    {
        return sqlite3_data_count(m_dbStatement);
    }

    boolean isNullByIdx(int nCol)
    {
        return sqlite3_column_type(m_dbStatement,nCol) == SQLITE_NULL;
    }

    String getColName(int nCol)
    {
        return sqlite3_column_name(m_dbStatement,nCol);;
    }

};

typedef rho::common::CAutoPtr<rho::db::CDBResult> DBResultPtr;
#define DBResult(name, call)\
    rho::db::DBResultPtr p##name = call;\
    rho::db::CDBResult& name = *p##name;

}
}

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rhodes-2.0.3 platform/shared/db/DBResult.h
rhodes-2.0.2 platform/shared/db/DBResult.h
rhodes-2.0.0 platform/shared/db/DBResult.h
rhodes-2.0.0.rc2 platform/shared/db/DBResult.h
rhodes-2.0.0.rc1 platform/shared/db/DBResult.h
rhodes-2.0.0.beta11 platform/shared/db/DBResult.h
rhodes-2.0.0.beta10 platform/shared/db/DBResult.h
rhodes-2.0.0.beta9 platform/shared/db/DBResult.h
rhodes-2.0.0.beta8 platform/shared/db/DBResult.h
rhodes-2.0.0.beta7 platform/shared/db/DBResult.h
rhodes-2.0.0.beta6 platform/shared/db/DBResult.h
rhodes-2.0.0.beta4 platform/shared/db/DBResult.h
rhodes-2.0.0.beta3 platform/shared/db/DBResult.h
rhodes-2.0.0.beta2 platform/shared/db/DBResult.h
rhodes-2.0.0.beta1 platform/shared/db/DBResult.h