00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __C_ONETOONERELATIONBASE_H__
00016 #define __C_ONETOONERELATIONBASE_H__
00017
00018
00019 #include <cRelation.h>
00020
00021 class DLL_External OneToOneRelationBase : public Relation {
00022 #ifdef POLITE_TEST_FRIEND
00023 friend POLITE_TEST_FRIEND;
00024 #endif // POLITE_TEST_FRIEND
00025
00026 public:
00027 OneToOneRelationBase(
00028 const char *a_left_class_name,
00029 const char *a_right_class_name,
00030 const char *a_table_name,
00031 class Connection *a_database_connection,
00032 const char *a_left_column_name = NULL,
00033 const char *a_right_column_name = NULL
00034 );
00035
00036 virtual bool InsertCouple(RefBase &left, RefBase &right);
00037
00038
00039 virtual bool DeleteCouple(RefBase &left, RefBase &right);
00040
00041
00042 virtual bool LDeleteAll(class RefBase &right);
00043
00044
00045 virtual bool RDeleteAll(class RefBase &left);
00046
00047
00048 virtual bool WriteDDL(ofstream &S, class Database &Db);
00049
00050
00051 protected:
00052 virtual class ResultBase *_LGetAll(
00053 ResultBase *rb,
00054 const class RefBase &right,
00055 const class QueRefProto &query = EQUERY
00056 );
00057
00058
00059
00060 virtual ResultBase *_RGetAll(
00061 ResultBase *rb,
00062 const class RefBase &left,
00063 const class QueRefProto &query = EQUERY
00064 );
00065
00066
00067
00068 public:
00069 virtual bool ExistsCouple(
00070 const class RefBase &left,
00071 const class RefBase &right
00072 );
00073
00074
00075
00076
00077
00078
00079
00080 OneToOneRelationBase(
00081 const class OneToOneRelationBase &R
00082 ) :
00083 Relation(
00084 R._leftClassName,
00085 R._rightClassName,
00086 R._tableName,
00087 R._databaseConnection,
00088 R._leftColumnName,
00089 R._rightColumnName
00090 ) {};
00091
00092
00093
00094
00095
00096
00097
00098 protected:
00099 virtual const char *_TableName() const;
00100
00101
00102
00103 };
00104
00105 #endif //__C_ONETOONERELATIONBASE_H__