IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 立即注册 - 请先获取邀请码

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 35|回复: 0

[Zabbix专区] 看看zabbix 数据库操作结构体

[复制链接]
来自- 湖南娄底

参加活动:0

组织活动:12

发表于 2017-8-20 11:49:24 | 显示全部楼层 |阅读模式 来自- 湖南娄底

一、数据库操作结果数据结构
struct zbx_db_result
{
#if defined(HAVE_IBM_DB2)
        SQLHANDLE        hstmt;
        SQLSMALLINT        nalloc;
        SQLSMALLINT        ncolumn;
        DB_ROW                values;
        DB_ROW                values_cli;
        SQLINTEGER        *values_len;
#elif defined(HAVE_MYSQL)
       MYSQL_RES        *result;
#elif defined(HAVE_ORACLE)
        OCIStmt                *stmthp;        /* the statement handle for select operations */
        int                 ncolumn;
        DB_ROW                values;
        ub4                *values_alloc;
        OCILobLocator        **clobs;
#elif defined(HAVE_POSTGRESQL)
        PGresult        *pg_result;
        int                row_num;
        int                fld_num;
        int                cursor;
        DB_ROW                values;
#elif defined(HAVE_SQLITE3)
        int                curow;
        char                **data;
        int                nrow;
        int                ncolumn;
        DB_ROW                values;
#endif
};

二、数据库根据sql查询
/******************************************************************************
*                                                                            *
* Function: DBselect                                                         *
*                                                                            *
* Purpose: execute a select statement                                        *
*                                                                            *
* Comments: retry until DB is up                                             *
*                                                                            *
******************************************************************************/
DB_RESULT        __zbx_DBselect(const char *fmt, ...)
{
        va_list                args;  //参数列表
        DB_RESULT        rc;

        va_start(args, fmt);

        rc = zbx_db_vselect(fmt, args);

        while ((DB_RESULT)ZBX_DB_DOWN == rc)
        {
                DBclose();
                DBconnect(ZBX_DB_CONNECT_NORMAL);

                if ((DB_RESULT)ZBX_DB_DOWN == (rc = zbx_db_vselect(fmt, args)))
                {
                        zabbix_log(LOG_LEVEL_ERR, "database is down: retrying in %d seconds", ZBX_DB_WAIT_DOWN);
                        connection_failure = 1;
                        sleep(ZBX_DB_WAIT_DOWN);
                }
        }

        va_end(args);

        return rc;
}

三、MySQL操作结果数据结构

typedef struct st_mysql_res {
  my_ulonglong  row_count;
  MYSQL_FIELD        *fields;
  MYSQL_DATA        *data;
  MYSQL_ROWS        *data_cursor;
  unsigned long *lengths;                /* column lengths of current row */
  MYSQL                *handle;                /* for unbuffered reads */
  const struct st_mysql_methods *methods;
  MYSQL_ROW        row;                        /* If unbuffered read */
  MYSQL_ROW        current_row;                /* buffer to current row */
  MEM_ROOT        field_alloc;
  unsigned int        field_count, current_field;
  my_bool        eof;                        /* Used by mysql_fetch_row */
  /* mysql_stmt_close() had to cancel this result */
  my_bool       unbuffered_fetch_cancelled;  
  void *extension;
} MYSQL_RES;

原创:黑洞


本版积分规则

团购课程最新动态

 

 

高品质!好口碑!

百分百通过率!

PeopleCertEXIN

国际授权资质!

ITIL Foundation北上广

2天精华班,包证书

ITIL Foundation三天精

讲,知名讲师,包证书

ITIL Expert 金牌讲师北

上广深11天,包证书

DevOps Foundation

2天热点认证班,包证书

ITSS 认证IT服务经理

4天课程,包证书

Prince2双证4天高级班

Cobit高端课程2天班

Togaf高端课程4天班

 

报名热线: 4008-060-230


QQ|小黑屋|手机版|Archiver|ITIL先锋论坛万人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-2-22 18:55 , Processed in 0.180770 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表