Exemple #1
0
// 根据SQL查询取数据,这里是针对关系型数据库的接口
CSqlResult *COracleDB::Select( const char *sql )
{
	OracleResult *result = new OracleResult;
	if ( result == NULL )
		return NULL ;

	int ret = oracle_select( sql, result );
	if ( ret != DB_ERR_SUCCESS ) {
		OUT_ERROR( NULL, 0, "Oracle", "Select sql: %s, result %d", sql, ret );
		delete result ;
		return NULL ;
	}
	return result ;
}
static int oracle_check_conn(void *conn)
{
    Octstr *sql;
    List *res;
    int ret;

    /* TODO Check for appropriate OCI function */
    sql = octstr_create("SELECT 1 FROM DUAL");

    ret = oracle_select(conn, sql, NULL, &res);
    if (ret != -1 && gwlist_len(res) > 0) {
        List *row = gwlist_extract_first(res);
        gwlist_destroy(row, octstr_destroy_item);
    }
    if (ret != -1)
        gwlist_destroy(res, NULL);

    octstr_destroy(sql);

    return ret;
}
Exemple #3
0
static int oracle_check_conn(void *theconn)
{
    int ret;

#ifdef HAVE_OCIPING
    struct ora_conn *conn = (struct ora_conn*) theconn;
    sword result;

    gw_assert(conn != NULL);

    result = OCIPing(conn->svchp, conn->errhp, OCI_DEFAULT);
    if (result != OCI_SUCCESS) {
        oracle_checkerr(conn->errhp, result);
        ret = -1;
    } else {
        ret = 0;
    }
#else
    Octstr *sql;
    List *res;
    /* TODO Check for appropriate OCI function */
    sql = octstr_create("SELECT 1 FROM DUAL");

    ret = oracle_select(conn, sql, NULL, &res);
    if (ret != -1 && gwlist_len(res) > 0) {
        List *row = gwlist_extract_first(res);
        gwlist_destroy(row, octstr_destroy_item);
    }
    if (ret != -1)
        gwlist_destroy(res, NULL);

    octstr_destroy(sql);
#endif

    return ret;
}