📄 fastdbcli.cs
字号:
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_fetch(int statement, QueryType queryType);
/*=====================================================================
* 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_insert(int statement, ref uint 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_seek(int statement, uint 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern uint 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_remove(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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_free(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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_abort(int session);
public enum FieldFlags: int {
cli_noindex = 0, /* no indexes */
cli_hashed = 1, /* field should be indexed usnig hash table */
cli_indexed = 2 /* field should be indexed using B-Tree */
};
[ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Ansi )]
internal struct CliFieldDescriptor {
public FieldType type;
public FieldFlags flags;
public IntPtr name;
public IntPtr refTableName;
public IntPtr inverseRefFieldName;
};
/*=====================================================================
* cli_describe
* Describe fileds 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe int cli_describe(
int session,
string table,
ref void* fields);
//[In,Out] ref CliFieldDescriptor[] fields); // cli_field_descriptor** fields
/*=====================================================================
* cli_get_field_size
* Calculate field size
* Parameters:
* fields - array with fields descriptors obtained using cli_describe function
* field_no - number of the field
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_get_field_size(
[In, Out] CliFieldDescriptor[] fields, // 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
*/
[DllImport(libname,
CharSet = CharSet.Ansi, // We want ANSI String
CallingConvention = CallingConvention.Cdecl)]
internal static extern int cli_get_field_offset(
[In, Out] CliFieldDescriptor[] fields, // cli_field_descriptor* fields
int field_no);
[ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Ansi )]
internal struct CliTableDescriptor {
public IntPtr name;
}
/*=====================================================================
* cli_show_tables
* Show all tables of specified database
* Parameters:
* session - session descriptor as returned by cli_open
* tables - address of the pointer to the array of tables descriptors,
* this array should be later deallocated by application by cli_free_memory()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -