struct custom_prepare_struct cps = { .sql = sql, .fields = fields, };
struct ast_flags connected_flag = { RES_ODBC_CONNECTED };
- if (!fields) {
- return NULL;
- }
-
- if (ast_string_field_init(&cps, 256)) {
- return NULL;
- }
-
- if (!table) {
- ast_string_field_free_memory(&cps);
+ if (!table || !field) {
return NULL;
}
if (!obj) {
ast_log(LOG_ERROR, "No database handle available with the name of '%s' (check res_odbc.conf)\n", database);
- ast_string_field_free_memory(&cps);
return NULL;
}
strcasestr(field->name, "LIKE") && !ast_odbc_backslash_is_escape(obj) ? " ESCAPE '\\'" : "");
}
+ if (ast_string_field_init(&cps, 256)) {
+ ast_odbc_release_obj(obj);
+ return NULL;
+ }
stmt = ast_odbc_prepare_and_execute(obj, custom_prepare, &cps);
+ ast_string_field_free_memory(&cps);
if (!stmt) {
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
ast_log(LOG_WARNING, "SQL Column Count error!\n[%s]\n\n", sql);
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
if (res == SQL_NO_DATA) {
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
ast_log(LOG_WARNING, "SQL Fetch error!\n[%s]\n\n", sql);
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
for (x = 0; x < colcount; x++) {
if (var)
ast_variables_destroy(var);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
}
}
-
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return var;
}
SQLLEN indicator;
struct custom_prepare_struct cps = { .sql = sql, .fields = fields, };
- if (!table || !field || ast_string_field_init(&cps, 256)) {
+ if (!table || !field) {
return NULL;
}
obj = ast_odbc_request_obj2(database, connected_flag);
if (!obj) {
- ast_string_field_free_memory(&cps);
return NULL;
}
snprintf(sql + strlen(sql), sizeof(sql) - strlen(sql), " ORDER BY %s", initfield);
+ if (ast_string_field_init(&cps, 256)) {
+ ast_odbc_release_obj(obj);
+ return NULL;
+ }
stmt = ast_odbc_prepare_and_execute(obj, custom_prepare, &cps);
+ ast_string_field_free_memory(&cps);
if (!stmt) {
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
ast_log(LOG_WARNING, "SQL Column Count error!\n[%s]\n\n", sql);
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
ast_log(LOG_WARNING, "Out of memory!\n");
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return NULL;
}
SQLFreeHandle(SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return cfg;
}
return -1;
}
- if (ast_string_field_init(&cps, 256)) {
- return -1;
- }
-
tableptr = ast_odbc_find_table(database, table);
if (!(obj = ast_odbc_request_obj2(database, connected_flag))) {
ast_odbc_release_table(tableptr);
- ast_string_field_free_memory(&cps);
return -1;
}
snprintf(sql + strlen(sql), sizeof(sql) - strlen(sql), " WHERE %s=?", keyfield);
ast_odbc_release_table(tableptr);
+ if (ast_string_field_init(&cps, 256)) {
+ ast_odbc_release_obj(obj);
+ return -1;
+ }
stmt = ast_odbc_prepare_and_execute(obj, custom_prepare, &cps);
+ ast_string_field_free_memory(&cps);
if (!stmt) {
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
return -1;
}
res = SQLRowCount(stmt, &rowcount);
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
ast_odbc_release_obj(obj);
- ast_string_field_free_memory(&cps);
if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
ast_log(LOG_WARNING, "SQL Row Count error!\n[%s]\n\n", sql);
return -1;
}
- if (ast_string_field_init(&cps, 256)) {
- return -1;
- }
-
obj = ast_odbc_request_obj2(database, connected_flag);
if (!obj) {
return -1;
}
snprintf(sql, sizeof(sql), "INSERT INTO %s (%s) VALUES (%s)", table, keys, vals);
+ if (ast_string_field_init(&cps, 256)) {
+ ast_odbc_release_obj(obj);
+ return -1;
+ }
stmt = ast_odbc_prepare_and_execute(obj, custom_prepare, &cps);
+ ast_string_field_free_memory(&cps);
if (!stmt) {
ast_odbc_release_obj(obj);
return -1;
}
- if (ast_string_field_init(&cps, 256)) {
- return -1;
- }
-
obj = ast_odbc_request_obj2(database, connected_flag);
if (!obj) {
return -1;
}
snprintf(sql + strlen(sql), sizeof(sql) - strlen(sql), "%s=?", keyfield);
+ if (ast_string_field_init(&cps, 256)) {
+ ast_odbc_release_obj(obj);
+ return -1;
+ }
stmt = ast_odbc_prepare_and_execute(obj, custom_prepare, &cps);
+ ast_string_field_free_memory(&cps);
if (!stmt) {
ast_odbc_release_obj(obj);