📄 cli.h
字号:
* statement - statememt descriptor returned by cli_statement
* column_name - zero terminated string with column name
* var_type - type of variable as described in cli_var_type enum
* var_ptr - pointer to the variable
* set - function which will be called to construct fetched
* field. It receives pointer to the variable,
* length of the fetched array and returns pointer to th
* array's elements
* get - function which will be called to update the field in the
* database. Given pointer to the variable, it should return
* pointer to the array elements and store length of the
* array to the variable pointer by len parameter
* user_data - pointer to user specific data passed to get and set functions
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_array_column(int statement,
char const* column_name,
int var_type,
void* var_ptr,
cli_column_set set,
cli_column_get get);
int FASTDB_DLL_ENTRY cli_array_column_ex(int statement,
char const* column_name,
int var_type,
void* var_ptr,
cli_column_set_ex set,
cli_column_get_ex get,
void* user_data);
enum {
cli_view_only,
cli_for_update
};
/*********************************************************************
* cli_fetch
* Execute select statement.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* for_update - not zero if fetched rows will be updated
* Returns:
* >= 0 - success, for select statements number of fetched rows is returned
* < 0 - error code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_fetch(int statement, int for_update);
/*********************************************************************
* cli_insert
* Execute insert statement.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* oid - object identifier of created record.
* Returns:
* status code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_insert(int statement, cli_oid_t* oid);
/*********************************************************************
* cli_get_first
* Get first row of the selection.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_get_first(int statement);
/*********************************************************************
* cli_get_last
* Get last row of the selection.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_get_last(int statement);
/*********************************************************************
* cli_get_next
* Get next row of the selection. If get_next records is called
* exactly after cli_fetch function call, is will fetch the first record
* in selection.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_get_next(int statement);
/*********************************************************************
* cli_get_prev
* Get previous row of the selection. If get_next records is called
* exactly after cli_fetch function call, is will fetch the last record
* in selection.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_get_prev(int statement);
/*********************************************************************
* cli_skip
* Skip specified number of rows.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* n - number of objects to be skipped
* - if "n" is positive, then this function has the same effect as
* executing cli_get_next() function "n" times.
* - if "n" is negative, then this function has the same effect as
* executing cli_get_prev() function "-n" times.
* - if "n" is zero, this method just reloads current record
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_skip(int statement, int n);
/*********************************************************************
* cli_seek
* Position cursor to the record with specified OID
* Parameters:
* statement - statememt descriptor returned by cli_statement
* oid - object identifier of the record to which cursor should be positioned
* Returns:
* >= 0 - success, position of the record in the selection
* < 0 - error code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_seek(int statement, cli_oid_t oid);
/*********************************************************************
* cli_get_oid
* Get object identifier of the current record
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* object identifier or 0 if no object is seleected
*/
cli_oid_t FASTDB_DLL_ENTRY cli_get_oid(int statement);
/*********************************************************************
* cli_update
* Update the current row in the selection. You have to set
* for_update parameter of cli_fetch to 1 in order to be able
* to perform updates. Updated value of row fields will be taken
* from bound column variables.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_update(int statement);
/*********************************************************************
* cli_remove
* Remove all selected records. You have to set
* for_update parameter of cli_fetch to 1 in order to be able
* to remove records.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_remove(int statement);
/*********************************************************************
* cli_remove_current
* Remove currently selected record. You have to set
* for_update parameter of cli_fetch to 1 in order to be able
* to remove records.
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_remove_current(int statement);
/*********************************************************************
* cli_free
* Deallocate statement and all associated data
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_free(int statement);
/*********************************************************************
* cli_close_cursor
* Close current cursor
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_close_cursor(int statement);
/*********************************************************************
* cli_commit
* Commit current database transaction
* Parameters:
* session - session descriptor as returned by cli_open
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_commit(int session);
/*********************************************************************
* cli_precommit
* Release all locks set by transaction. This methods allows other clients
* to proceed, but it doesn't flush transaction to the disk.
* Parameters:
* session - session descriptor as returned by cli_open
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_precommit(int session);
/*********************************************************************
* cli_abort
* Abort current database transaction
* Parameters:
* session - session descriptor as returned by cli_open
* Returns:
* result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_abort(int session);
enum cli_field_flags {
cli_hashed = 1, /* field should be indexed usnig hash table */
cli_indexed = 2, /* field should be indexed using B-Tree */
cli_autoincremented = 16 /* field is assigned automaticall incremented value */
};
typedef struct cli_field_descriptor {
enum cli_var_type type;
int flags;
char const* name;
char const* refTableName;
char const* inverseRefFieldName;
} cli_field_descriptor;
/*********************************************************************
* cli_describe
* Describe fields of specified table
* Parameters:
* session - session descriptor as returned by cli_open
* table - name of the table
* fields - address of the pointer to the array of fields descriptors,
* this array should be later deallocated by application by cli_free_memory()
* Returns:
* >= 0 - number of fields in the table
* < 0 - result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_describe(int session, char const* table, cli_field_descriptor** fields);
typedef struct cli_field_layout {
cli_field_descriptor desc;
int offs;
int size;
} cli_field_layout;
/*********************************************************************
* cli_describe_layout
* Describe fields layout of specified table
* Parameters:
* session - session descriptor as returned by cli_open
* table - name of the table
* fields - address of the pointer to the array of fields layout descriptors,
* this array should be later deallocated by application by cli_free_memory()
* rec_size - pointer to the location to receive size of the record. This size can be used by application to allocate buffer for cli_execute_query function
* Returns:
* >= 0 - number of fields in the table
* < 0 - result code as described in cli_result_code enum
*/
int FASTDB_DLL_ENTRY cli_describe_layout(int session, char const* table, cli_field_layout** fields, int* rec_size);
/*********************************************************************
* cli_get_field_size
* Calculate field size
* Parameters:
* fields - array with fields descriptors obtained using cli_describe function
* field_no - number of the field
*/
int FASTDB_DLL_ENTRY cli_get_field_size(cli_field_descriptor* fields, int field_no);
/*********************************************************************
* cli_get_field_offset
* Calculate offset of the field
* Parameters:
* fields - array with fields descriptors obtained using cli_describe function
* field_no - number of the field
*/
int FASTDB_DLL_ENTRY cli_get_field_offset(cli_field_descriptor* fields, int field_no);
typedef struct cli_table_descriptor {
char const* name;
} cli_table_descriptor;
/*********************************************************************
* cli_show_tables
* Show all tables of specified database
* Parameters:
* session - session descriptor as returned by cli_open
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -