📄 thrdutil.h
字号:
/*
** thrdutil.h
**
** Header file which contains the defines and prototypes for the utility
** functions in thrdutil.c
**
*/
/* Sccsid %Z% %M% %I% %G% */
/*****************************************************************************
**
** defines and typedefs used
**
*****************************************************************************/
#ifndef MAX
#define MAX(X,Y) (((X) > (Y)) ? (X) : (Y))
#endif
#ifndef MIN
#define MIN(X,Y) (((X) < (Y)) ? (X) : (Y))
#endif
/*
** Maximum character buffer for displaying a column
*/
#define MAX_CHAR_BUF 1024
/*
** MEM_ALIGN_BOUNDARY - memory alignment boundary
*/
#define MEM_ALIGN_BOUNDARY 8
/*
** MEM_ALIGN_SIZE - Align size to nearest higher multiple
** of MEM_ALIGN_BOUNDARY
*/
#define MEM_ALIGN_SIZE(blocksize) ((((blocksize)+MEM_ALIGN_BOUNDARY-1)/MEM_ALIGN_BOUNDARY)*MEM_ALIGN_BOUNDARY)
/*
** Maximum size of memory block to be used during array binding
*/
#define MAX_MEM_BLOCK_SIZE 50000
/*
** EX_GET_COLUMNVALUE - calculate column value pointer given the row number
*/
#define EX_GET_COLUMN_VALUE(coldata, row, col, colfmt) \
(coldata[col].value + ((row) * (colfmt[col].maxlength)))
/*
** EX_GLOBAL_PROTECT
** Protect access to shared global by taking global lock
*/
#define EX_GLOBAL_PROTECT(Operation) \
{ \
(void)ex_take_global_mutex(); \
Operation; \
(void)ex_release_global_mutex();\
}
/*
** Query type
*/
#define EX_CURSOR_QUERY 1
#define EX_REGULAR_QUERY 2
/*
** Define structure where row data is bound.
** Allow for column arrays - for array binding.
*/
typedef struct _ex_column_data
{
CS_SMALLINT *indicator;
CS_CHAR *value;
CS_INT *valuelen;
} EX_COLUMN_DATA;
/*
** Define thread task structure
**
** threadnum - logical thread number ( 0 - n ) maintained by application
** thread - thread pointer
** context - cs context structure used by the thread
** query - Query to be processed
** dbname - database name for the query
** operation - Query type
**
*/
typedef struct _ex_task
{
CS_INT threadnum;
CS_VOID *thread;
CS_CONTEXT *context;
CS_CHAR *query;
CS_CHAR *dbname;
CS_INT operation;
} EX_TASK;
/*****************************************************************************
**
** protoypes for all public functions
**
*****************************************************************************/
/* thrdutil.c */
extern CS_INT CS_PUBLIC ex_display_dlen PROTOTYPE((
CS_DATAFMT *column
));
extern CS_RETCODE CS_PUBLIC ex_display_header PROTOTYPE((
CS_INT threadnum,
CS_INT numcols,
CS_DATAFMT columns[]
));
extern CS_RETCODE CS_PUBLIC ex_display_column PROTOTYPE((
CS_INT threadnum,
CS_CONTEXT *context,
CS_DATAFMT *colfmt,
CS_VOID *data,
CS_INT datalength,
CS_INT indicator
));
extern CS_VOID CS_PUBLIC ex_panic PROTOTYPE((
CS_INT threadnum,
char *msg
));
extern CS_VOID CS_PUBLIC ex_error PROTOTYPE((
CS_INT threadnum,
char *msg
));
extern CS_RETCODE CS_PUBLIC ex_clientmsg_cb PROTOTYPE((
CS_CONTEXT *context,
CS_CONNECTION *connection,
CS_CLIENTMSG *errmsg
));
extern CS_RETCODE CS_PUBLIC ex_servermsg_cb PROTOTYPE((
CS_CONTEXT *context,
CS_CONNECTION *connection,
CS_SERVERMSG *srvmsg
));
extern CS_RETCODE CS_PUBLIC ex_init PROTOTYPE((
CS_INT threadnum,
CS_CONTEXT **context
));
extern CS_RETCODE CS_PUBLIC ex_connect PROTOTYPE((
CS_INT threadnum,
CS_CONTEXT *context,
CS_CONNECTION **connection,
CS_CHAR *appname,
CS_CHAR *username,
CS_CHAR *password,
CS_CHAR *server
));
extern CS_RETCODE CS_PUBLIC ex_con_cleanup PROTOTYPE((
CS_CONNECTION *connection,
CS_RETCODE status
));
extern CS_RETCODE CS_PUBLIC ex_ctx_cleanup PROTOTYPE((
CS_CONTEXT *context,
CS_RETCODE status
));
extern CS_RETCODE CS_PUBLIC ex_execute_cmd PROTOTYPE((
CS_CONNECTION *connection,
CS_CHAR *cmdbuf
));
extern CS_RETCODE CS_PUBLIC ex_fetch_data PROTOTYPE((
CS_COMMAND *cmd
));
extern CS_RETCODE CS_PUBLIC ex_create_db PROTOTYPE((
CS_CONNECTION *connection,
char *dbname
));
extern CS_RETCODE ex_remove_db PROTOTYPE((
CS_CONNECTION *connection,
char *dbname
));
extern CS_RETCODE ex_use_db PROTOTYPE((
CS_CONNECTION *connection,
char *dbname
));
extern CS_RETCODE ex_get_threadnum PROTOTYPE((
CS_CONTEXT *context,
CS_CONNECTION *connection,
CS_INT *threadnum
));
extern CS_RETCODE CS_PUBLIC ex_display_rows PROTOTYPE((
CS_INT threadnum,
CS_INT numrows,
CS_INT numcols,
CS_DATAFMT *colfmt,
EX_COLUMN_DATA *coldata
));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -