diff options
author | automerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-05-03 00:18:05 +0000 |
---|---|---|
committer | automerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-05-03 00:18:05 +0000 |
commit | d127bf63a6b16adc4ec42a8cdf0056a8d8ea3816 (patch) | |
tree | dcf153d6f983eac1ea0ab08eb66e29af27077b41 /res | |
parent | 17dbacc14870455c01469b90dfe8104d9acd22c8 (diff) |
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@62840 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r-- | res/res_config_odbc.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c index 5a71ee561..fb3120757 100644 --- a/res/res_config_odbc.c +++ b/res/res_config_odbc.c @@ -421,9 +421,11 @@ static struct ast_config *config_odbc(const char *database, const char *table, c struct ast_category *cur_cat; int res = 0; odbc_obj *obj; - SQLINTEGER err=0, commented=0, cat_metric=0, var_metric=0, last_cat_metric=0; - SQLBIGINT id; - char sql[255] = "", filename[128], category[128], var_name[128], var_val[1024]; + SQLINTEGER err=0, cat_metric=0, last_cat_metric=0; + char category[128], var_name[128], var_val[1024]; + char sqlbuf[1024]; + char *sql; + size_t sqlleft = sizeof(sqlbuf); SQLSMALLINT rowcount=0; SQLHSTMT stmt; char last[128] = ""; @@ -437,18 +439,16 @@ static struct ast_config *config_odbc(const char *database, const char *table, c res = SQLAllocHandle (SQL_HANDLE_STMT, obj->con, &stmt); - SQLBindCol (stmt, 1, SQL_C_ULONG, &id, sizeof (id), &err); - SQLBindCol (stmt, 2, SQL_C_ULONG, &cat_metric, sizeof (cat_metric), &err); - SQLBindCol (stmt, 3, SQL_C_ULONG, &var_metric, sizeof (var_metric), &err); - SQLBindCol (stmt, 4, SQL_C_ULONG, &commented, sizeof (commented), &err); - SQLBindCol (stmt, 5, SQL_C_CHAR, &filename, sizeof (filename), &err); - SQLBindCol (stmt, 6, SQL_C_CHAR, &category, sizeof (category), &err); - SQLBindCol (stmt, 7, SQL_C_CHAR, &var_name, sizeof (var_name), &err); - SQLBindCol (stmt, 8, SQL_C_CHAR, &var_val, sizeof (var_val), &err); + SQLBindCol(stmt, 1, SQL_C_ULONG, &cat_metric, sizeof(cat_metric), &err); + SQLBindCol(stmt, 2, SQL_C_CHAR, &category, sizeof(category), &err); + SQLBindCol(stmt, 3, SQL_C_CHAR, &var_name, sizeof(var_name), &err); + SQLBindCol(stmt, 4, SQL_C_CHAR, &var_val, sizeof(var_val), &err); - snprintf(sql, sizeof(sql), "SELECT * FROM %s WHERE filename='%s' and commented=0 ORDER BY filename,cat_metric desc,var_metric asc,category,var_name,var_val,id", table, file); + ast_build_string(&sql, &sqlleft, "SELECT cat_metric, category, var_name, var_val FROM %s ", table); + ast_build_string(&sql, &sqlleft, "WHERE filename='%s' AND commented=0 ", file); + ast_build_string(&sql, &sqlleft, "ORDER BY cat_metric DESC, var_metric ASC, category, var_name "); - res = odbc_smart_direct_execute(obj, stmt, sql); + res = odbc_smart_direct_execute(obj, stmt, sqlbuf); if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) { ast_log (LOG_WARNING, "SQL select error!\n[%s]\n\n", sql); |