📄 fastdbcli.pas
字号:
{********************************************************************
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
--------------------------------------------------------------------}
cli_get_last: function(statement: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_get_next: function(statement: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_get_prev: function(statement: Integer): Integer cdecl;
{*********************************************************************
* 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 has no effect
* Returns:
* result code as described in cli_result_code enum
*}
cli_skip: function(statement: Integer; n: Integer): Integer cdecl;
{*********************************************************************
* 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
*}
cli_seek: function(statement: Integer; oid: cli_oid_t): Integer cdecl;
{********************************************************************
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_get_oid: function(statement: Integer): cli_oid_t cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_update: function(statement: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_remove: function(statement: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_free: function(statement: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_commit: function(session: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_precommit: function(session: Integer): Integer cdecl;
{********************************************************************
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
--------------------------------------------------------------------}
cli_abort: function(session: Integer): Integer cdecl;
{*********************************************************************
* cli_freeze
* Freeze cursor
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*}
cli_freeze: function(Statement: Integer): Integer; cdecl;
{*********************************************************************
* cli_unfreeze
* Unfreeze cursor
* Parameters:
* statement - statememt descriptor returned by cli_statement
* Returns:
* result code as described in cli_result_code enum
*}
cli_unfreeze: function(Statement: Integer): Integer; cdecl;
{*********************************************************************
* cli_attach
* Attach thread to the database. Each thread except one opened the database should first
* attach to the database before any access to the database, and detach after end of the work with database
* Parameters:
* session - session descriptor returned by cli_open
* Returns:
* result code as described in cli_result_code enum
*}
var
cli_attach: function(session: Integer): Integer; cdecl;
{*********************************************************************
* cli_detach
* Detach thread from the database. Each thread except one opened the database should perform
* attach to the database before any access to the database, and detach after end of the work with database
* Parameters:
* session - session descriptor returned by cli_open
* detach_mode - bit mask representing detach mode
* Returns:
* result code as described in cli_result_code enum
*}
const
cli_commit_on_detach = 1;
cli_destroy_context_on_detach = 2;
type
TDetachMode = (dtPreCommit, dtCommit, dtDestroyContext);
TDetachModes = set of TDetachMode;
function cli_detach(session: Integer; DetachMode: TDetachModes): Integer;
const
cli_hashed = 1; { field should be indexed usnig hash table }
cli_indexed = 2; { field should be indexed using B-Tree }
{$IFDEF GIGABASE}
cli_case_insensitive = 8; { index is case insensitive }
cli_unique = 16; { index containing unique keys }
cli_optimize_duplicates = 64; { index with lot of duplicate key values }
{$ENDIF}
type
TIndexType = (itHash, itTree {$IFDEF GIGABASE}, itCaseInsensitive, itUnique, itOptimizeDuplicates{$ENDIF});
TIndexTypes = set of TIndexType;
//PCliFieldDescriptor = ^cli_field_descriptor;
cli_field_descriptor = record
FieldType: Integer;
flags: Integer;
name: PCHAR;
refTableName: PCHAR;
inverseRefFieldName: PCHAR;
end {cli_field_descriptor};
TCliFieldDescriptor = cli_field_descriptor;
PCliFieldDescriptor = ^TCliFieldDescriptor;
PPCliFieldDescriptor = ^PCliFieldDescriptor;
TFieldDescriptors = array of TCliFieldDescriptor;
//PPACliFieldDescriptor = TACliFieldDescriptor;
{********************************************************************
cli_describe
Describe fileds of specified table
Parameters:
session - session descriptor as returned by cli_open
table - name of the table
fields - adress 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
--------------------------------------------------------------------}
var
cli_describe: function(session: Integer;
const table: PChar;
fields: PPCliFieldDescriptor): Integer cdecl;
{*********************************************************************
* cli_get_field_size
* Calculate field size
* Parameters:
* fields - array with fields descriptors obtained using cli_describe function
* field_no - number of the field
*}
var
cli_get_field_size: function(fields: PPCliFieldDescriptor; field_no: Integer): Integer; cdecl;
{*********************************************************************
* 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
*}
var
cli_get_field_offset: function(fields: PPCliFieldDescriptor; field_no: Integer): Integer; cdecl;
type
cli_table_descriptor = record
name: PCHAR;
end {cli_table_descriptor};
PCliTableDescriptor = ^cli_table_descriptor;
//PACliTableDescriptor = array of PCliTableDescriptor;
//PPACliTableDescriptor = ^PACliTableDescriptor;
{********************************************************************
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()
Returns:
>= 0 - number of tables in the database (Metatable is not returned/counted)
< 0 - result code as described in cli_result_code enum
--------------------------------------------------------------------}
var
cli_show_tables: function(session: Integer;
var tables: PCliTableDescriptor): Integer cdecl;
{********************************************************************
cli_create_table
Create new table
Parameters:
session - session descriptor as returned by cli_open
tableName - name of new table
nFields - number of columns in the table
fields - array with table columns descriptors
this array should be later deallocated by application by
__free() or SysFreeMem()
Returns:
result code as described in cli_result_code enum
--------------------------------------------------------------------}
cli_create_table: function(session: Integer;
const tableName: PChar;
nFields: Integer;
fields: PCliFieldDescriptor): Integer cdecl;
{*********************************************************************
cli_alter_table
Change table format
Parameters:
session - session descriptor as returned by cli_open
tableName - name of existing table
nFields - number of columns in the table
fields - array with new table columns descriptors
Returns:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -