00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef KSM_DATABASE_STATEMENT_H
00030 #define KSM_DATABASE_STATEMENT_H
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 typedef enum {
00047 DQS_END_OF_LIST,
00048 DQS_COMPARE_LT,
00049 DQS_COMPARE_LE,
00050 DQS_COMPARE_EQ,
00051 DQS_COMPARE_NE,
00052 DQS_COMPARE_GT,
00053 DQS_COMPARE_GE,
00054 DQS_COMPARE_IN,
00055 DQS_COMPARE_NOT_IN,
00056 DQS_COMPARE_IS
00057 } DQS_COMPARISON;
00058
00059
00060
00061 typedef struct {
00062 int code;
00063 DQS_COMPARISON compare;
00064 union {
00065 int number;
00066 const char* string;
00067 void* binary;
00068 struct tm* datetime;
00069 } data;
00070 } DQS_QUERY_CONDITION;
00071
00072
00073
00074 char* DqsInit(const char* table);
00075 char* DqsCountInit(const char* table);
00076 char* DqsSpecifyInit(const char* table, const char* fields);
00077 void DqsConditionInt(char** query, const char* field, DQS_COMPARISON compare,
00078 int value, int clause);
00079 void DqsConditionString(char** query, const char* field, DQS_COMPARISON compare,
00080 const char* value, int clause);
00081 void DqsConditionKeyword(char** query, const char* field,
00082 DQS_COMPARISON compare, const char* value, int clause);
00083 void DqsOrderBy(char** query, const char* field);
00084 void DqsEnd(char** query);
00085 void DqsFree(char* query);
00086
00087
00088
00089 char* DisInit(const char* table);
00090 char* DisSpecifyInit(const char* table, const char* cols);
00091 void DisAppendInt(char** sql, int what);
00092 void DisAppendString(char** sql, const char* what);
00093 void DisEnd(char** sql);
00094 void DisFree(char* sql);
00095
00096
00097
00098 char* DusInit(const char* table);
00099 void DusSetInt(char** sql, const char* field, int data, int clause);
00100 void DusSetString(char** sql, const char* field, const char* data, int clause);
00101 void DusConditionInt(char** query, const char* field, DQS_COMPARISON compare,
00102 int value, int clause);
00103 void DusConditionString(char** query, const char* field, DQS_COMPARISON compare,
00104 const char* value, int clause);
00105 void DusConditionKeyword(char** query, const char* field,
00106 DQS_COMPARISON compare, const char* value, int clause);
00107 void DusEnd(char** sql);
00108 void DusFree(char* sql);
00109
00110
00111
00112 char* DdsInit(const char* table);
00113 void DdsConditionInt(char** query, const char* field, DQS_COMPARISON compare,
00114 int value, int clause);
00115 void DdsConditionString(char** query, const char* field, DQS_COMPARISON compare,
00116 const char* value, int clause);
00117 void DdsConditionKeyword(char** query, const char* field,
00118 DQS_COMPARISON compare, const char* value, int clause);
00119 void DdsEnd(char** query);
00120 void DdsFree(char* query);
00121
00122 #ifdef __cplusplus
00123 };
00124 #endif
00125
00126 #endif