added Cursor class
git-svn-id: svn://ttmath.org/publicrep/morm/trunk@1140 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
38
src/model.h
38
src/model.h
@@ -41,6 +41,7 @@
|
||||
#include "modelconnector.h"
|
||||
#include "dbexpression.h"
|
||||
#include "flatexpression.h"
|
||||
#include "queryresult.h"
|
||||
|
||||
|
||||
|
||||
@@ -92,10 +93,6 @@ public:
|
||||
virtual bool found();
|
||||
|
||||
|
||||
virtual bool was_db_error();
|
||||
virtual std::wstring get_db_error();
|
||||
|
||||
|
||||
void set_connector(ModelConnector & connector);
|
||||
void set_connector(ModelConnector * connector);
|
||||
|
||||
@@ -155,8 +152,11 @@ protected:
|
||||
ModelData * model_data;
|
||||
const void * doc_field_pointer;
|
||||
int model_connector_mode;
|
||||
QueryResult * query_result;
|
||||
|
||||
|
||||
Model();
|
||||
Model(const Model & m);
|
||||
virtual ~Model();
|
||||
|
||||
virtual void before_select();
|
||||
@@ -176,8 +176,8 @@ protected:
|
||||
|
||||
virtual int get_connector_mode();
|
||||
|
||||
// used by Finder
|
||||
virtual void map_values_from_query();
|
||||
// used by Cursor
|
||||
virtual void map_values_from_query(QueryResult * query_result);
|
||||
|
||||
|
||||
/////////////////////////////////
|
||||
@@ -684,7 +684,7 @@ protected:
|
||||
if( db_connector )
|
||||
{
|
||||
if( !is_empty_field(db_field_name) )
|
||||
db_connector->get_value_by_field_name(db_field_name, field_value);
|
||||
get_value_by_field_name(db_field_name, field_value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -825,6 +825,27 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void get_value_by_field_name(const wchar_t * field_name, FieldValue & field_value)
|
||||
{
|
||||
if( query_result )
|
||||
{
|
||||
const char * val_str = query_result->get_field_string_value(field_name);
|
||||
|
||||
if( val_str )
|
||||
{
|
||||
DbConnector * db_connector = model_connector->get_db_connector();
|
||||
|
||||
if( db_connector )
|
||||
{
|
||||
db_connector->get_value(val_str, field_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////
|
||||
template<typename FieldValue>
|
||||
void doc_field_generic(const wchar_t * db_field_name, const wchar_t * flat_field_name, FieldValue & field_value)
|
||||
@@ -966,7 +987,8 @@ protected:
|
||||
virtual bool is_empty_field(const wchar_t * value);
|
||||
|
||||
|
||||
template<typename ModelClass> friend class Finder;
|
||||
// template<typename ModelClass> friend class Finder;
|
||||
template<typename ModelClass> friend class Cursor;
|
||||
friend class BaseExpression;
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user