characterData-SQLite-table

characterData-SQLite-table

Synopsis



enum                TableIndex;
                    FieldProperties;
                    TableProperties;
#define             MAIN_KEY_FIELD
typedef             TableFlags;
#define             INTEGER_DATA_TYPE
#define             TEXT_DATA_TYPE
#define             MAIN_KEY_FIELD_PROPERITIES
#define             LANG_TABLE_FIELDS
enum                LANG_TABLE_FIELD_ID;
#define             VARIANT_TABLE_FIELDS
enum                VARIANT_TABLE_FIELD_ID;
#define             INPUTCODE_TABLE_FIELDS
enum                INPUTCODE_TABLE_FIELD_ID;
#define             STROKEDATA_TABLE_FIELDS
enum                STROKE_DATA_TABLE_FIELD_ID;
#define             RADICALGM_TABLE_FIELDS
enum                RADICALGM_TABLE_FIELD_ID;
#define             SUBRADICALSEQUENCE_TABLE_FIELDS
enum                SUBRADICALSEQUENCE_TABLE_FIELD_ID;
#define             WRITRECOGN_TABLE_FIELDS
enum                WRITRECOGN_TABLE_FIELD_ID;
                    WritRecognDB_properties;
extern              WritRecognDB_properties writRecognDB_properties;
RadicalList*        sqliteTable_append_result_radicalList
                                                        (sqlite3 *db,
                                                         TableProperties *table,
                                                         const gchar *sqlClause,
                                                         RadicalList *radList);
RadicalArray*       sqliteTable_append_result_radicalArray
                                                        (SQLite *db,
                                                         TableProperties *table,
                                                         const gchar *sqlClause,
                                                         RadicalArray *radArray);
RadicalList*        sqliteCharacterDataFile_query_allTables_radicalList
                                                        (SQLite *db,
                                                         const gchar *queryTemplate);
RadicalArray*       sqliteCharacterDataFile_query_allTables_radicalArray
                                                        (SQLite *db,
                                                         const gchar *queryTemplate);
int                 writRecognDB_properties_parse_result_callback
                                                        (void *db_properties,
                                                         int colNum,
                                                         char **recStr,
                                                         char **azColName);
gchar*              writRecognDB_properties_to_insertCmds
                                                        (CharacterDataFile *cdFile,
                                                         gpointer obj);
gchar*              writRecognDB_properties_to_updateCmds
                                                        (CharacterDataFile *cdFile,
                                                         gpointer obj);

Description

Details

enum TableIndex

typedef enum {
    LANG_TABLE_INDEX=0,
    VARIANT_TABLE_INDEX,
    INPUTCODE_TABLE_INDEX,
    RADICALGM_TABLE_INDEX,
    SUBRADICALSEQUENCE_TABLE_INDEX,
    STROKEDATA_TABLE_INDEX,
    WRITRECOGN_TABLE_INDEX,
    TABLE_COUNTS
} TableIndex;


FieldProperties

typedef struct {
    const gchar *name;
    const gchar *dataType;
} FieldProperties;


TableProperties

typedef struct {
    const gchar *name;
    const FieldProperties *fields;
    int (*parse_result_callback)
     (void *radicalList, int colNum, char **recStr, char **azColName);
    gchar *(*to_insertCmd) (CharacterDataFile *cdFile,gpointer obj);
    gchar *(*to_updateCmd) (CharacterDataFile *cdFile,gpointer obj);
} TableProperties;


MAIN_KEY_FIELD

#define MAIN_KEY_FIELD "RadicalCode"


TableFlags

typedef unsigned TableFlags;


INTEGER_DATA_TYPE

#define INTEGER_DATA_TYPE "integer"


TEXT_DATA_TYPE

#define TEXT_DATA_TYPE "text"


MAIN_KEY_FIELD_PROPERITIES

#define MAIN_KEY_FIELD_PROPERITIES {MAIN_KEY_FIELD, INTEGER_DATA_TYPE}


LANG_TABLE_FIELDS

#define             LANG_TABLE_FIELDS


enum LANG_TABLE_FIELD_ID

typedef enum {
    LANG_TABLE_FIELD_ID_RADICALCODE = 0,
    LANG_TABLE_FIELD_ID_LANG
} LANG_TABLE_FIELD_ID;


VARIANT_TABLE_FIELDS

#define             VARIANT_TABLE_FIELDS


enum VARIANT_TABLE_FIELD_ID

typedef enum {
    VARIANT_TABLE_FIELD_ID_RADICALCODE = 0,
    VARIANT_TABLE_FIELD_ID_VARRADICALCODE
} VARIANT_TABLE_FIELD_ID;


INPUTCODE_TABLE_FIELDS

#define             INPUTCODE_TABLE_FIELDS


enum INPUTCODE_TABLE_FIELD_ID

typedef enum {
    INPUTCODE_TABLE_FIELD_ID_RADICALCODE = 0,
    INPUTCODE_TABLE_FIELD_ID_METHOD,
    INPUTCODE_TABLE_FIELD_ID_INPUTCODE,
} INPUTCODE_TABLE_FIELD_ID;


STROKEDATA_TABLE_FIELDS

#define             STROKEDATA_TABLE_FIELDS


enum STROKE_DATA_TABLE_FIELD_ID

typedef enum {
    STROKE_DATA_TABLE_FIELD_ID_RADICALCODE = 0,
    STROKE_DATA_TABLE_FIELD_ID_WRITINGID,
    STROKE_DATA_TABLE_FIELD_ID_STROKEID,
    STROKE_DATA_TABLE_FIELD_ID_NODEID,
    STROKE_DATA_TABLE_FIELD_ID_NODEX,
    STROKE_DATA_TABLE_FIELD_ID_NODEY
} STROKE_DATA_TABLE_FIELD_ID;


RADICALGM_TABLE_FIELDS

#define             RADICALGM_TABLE_FIELDS


enum RADICALGM_TABLE_FIELD_ID

typedef enum {
    RADICALGM_TABLE_FIELD_ID_RADICALCODE = 0,
    RADICALGM_TABLE_FIELD_ID_MODELID,
    RADICALGM_TABLE_FIELD_ID_SUBRADICALSERIAL,
    RADICALGM_TABLE_FIELD_ID_SUBRADICALCODE,
    RADICALGM_TABLE_FIELD_ID_A_LEFT,
    RADICALGM_TABLE_FIELD_ID_A_TOP,
    RADICALGM_TABLE_FIELD_ID_A_RIGHT,
    RADICALGM_TABLE_FIELD_ID_A_BOTTOM,
    RADICALGM_TABLE_FIELD_ID_R_LEFT,
    RADICALGM_TABLE_FIELD_ID_R_TOP,
    RADICALGM_TABLE_FIELD_ID_R_RIGHT,
    RADICALGM_TABLE_FIELD_ID_R_BOTTOM
} RADICALGM_TABLE_FIELD_ID;


SUBRADICALSEQUENCE_TABLE_FIELDS

#define             SUBRADICALSEQUENCE_TABLE_FIELDS


enum SUBRADICALSEQUENCE_TABLE_FIELD_ID

typedef enum {
    SUBRADICALSEQUENCE_TABLE_FIELD_ID_RADICALCODE = 0,
    SUBRADICALSEQUENCE_TABLE_FIELD_ID_MODELID,
    SUBRADICALSEQUENCE_TABLE_FIELD_ID_SEQHORZ,
    SUBRADICALSEQUENCE_TABLE_FIELD_ID_SEQVERT,
} SUBRADICALSEQUENCE_TABLE_FIELD_ID;


WRITRECOGN_TABLE_FIELDS

#define             WRITRECOGN_TABLE_FIELDS


enum WRITRECOGN_TABLE_FIELD_ID

typedef enum {
    WRITRECOGN_TABLE_FIELD_ID_VERSION = 0,
} WRITRECOGN_TABLE_FIELD_ID;


WritRecognDB_properties

typedef struct {
    gchar* version;
} WritRecognDB_properties;


writRecognDB_properties

extern WritRecognDB_properties writRecognDB_properties;


sqliteTable_append_result_radicalList ()

RadicalList*        sqliteTable_append_result_radicalList
                                                        (sqlite3 *db,
                                                         TableProperties *table,
                                                         const gchar *sqlClause,
                                                         RadicalList *radList);

This function is faster than sqliteTable_append_result_radicalArray(), so unless the full character details are required immediately, this function is preferred.

returns: Return radList, NULL when the function failed.

db :

The character database.

table :

the table to process.

sqlClause :

the SQL clause.

radList :

the non-NULL radList which store the result.

Returns :


sqliteTable_append_result_radicalArray ()

RadicalArray*       sqliteTable_append_result_radicalArray
                                                        (SQLite *db,
                                                         TableProperties *table,
                                                         const gchar *sqlClause,
                                                         RadicalArray *radArray);

This function is slower than sqliteTable_append_result_radicalList(), so unless the full character details are required immediately, use sqliteTable_append_result_radicalList().

returns: Return radArray, NULL when the function failed.

db :

The character database.

table :

the table to process.

sqlClause :

the SQL clause.

radArray :

the non-NULL radArray which store the result.

Returns :


sqliteCharacterDataFile_query_allTables_radicalList ()

RadicalList*        sqliteCharacterDataFile_query_allTables_radicalList
                                                        (SQLite *db,
                                                         const gchar *queryTemplate);

The query is submitted in the form of template. The s in template will be replaced by the name of the tables. For example: "SELECT * FROM s WHERE RadicalCode=1000;"

This function is faster than sqliteCharacterDataFile_query_allTables_radicalArray(), so unless the full character details are required immediately, this function is preferred.

returns: Return a radical list, NULL when the function failed.

db :

The character database.

queryTemplate :

Template of query, see the function description.

Returns :


sqliteCharacterDataFile_query_allTables_radicalArray ()

RadicalArray*       sqliteCharacterDataFile_query_allTables_radicalArray
                                                        (SQLite *db,
                                                         const gchar *queryTemplate);

The query is submitted in the form of template. The s in template will be replaced by the name of the tables. For example: "SELECT * FROM s WHERE RadicalCode=1000;"

This function is slower than sqliteCharacterDataFile_query_allTables_radicalList(), so unless the full character details are required immediately, use sqliteCharacterDataFile_query_allTables_radicalList().

returns: Return a radical array, NULL when the function failed.

db :

The character database.

queryTemplate :

Template of query, see the function description.

Returns :


writRecognDB_properties_parse_result_callback ()

int                 writRecognDB_properties_parse_result_callback
                                                        (void *db_properties,
                                                         int colNum,
                                                         char **recStr,
                                                         char **azColName);

db_properties :

colNum :

recStr :

azColName :

Returns :


writRecognDB_properties_to_insertCmds ()

gchar*              writRecognDB_properties_to_insertCmds
                                                        (CharacterDataFile *cdFile,
                                                         gpointer obj);

cdFile :

obj :

Returns :


writRecognDB_properties_to_updateCmds ()

gchar*              writRecognDB_properties_to_updateCmds
                                                        (CharacterDataFile *cdFile,
                                                         gpointer obj);

cdFile :

obj :

Returns :