Adding function SQLite3DB::return_one_int()

pull/317/head
René Cannaò 11 years ago
parent f185f2a13a
commit ba16850d2d

@ -141,6 +141,7 @@ class SQLite3DB {
int open(char *, int);
bool execute(const char *);
bool execute_statement(const char *, char **, int *, int *, SQLite3_result **);
int return_one_int(const char *);
int check_table_structure(char *table_name, char *table_def);
bool build_table(char *table_name, char *table_def, bool dropit);
bool check_and_build_table(char *table_name, char *table_def);

@ -2096,8 +2096,6 @@ void ProxySQL_Admin::flush_mysql_query_rules__from_memory_to_disk() {
admindb->execute("PRAGMA foreign_keys = ON");
}
void ProxySQL_Admin::__attach_db(SQLite3DB *db1, SQLite3DB *db2, char *alias) {
const char *a="ATTACH DATABASE '%s' AS %s";
int l=strlen(a)+strlen(db2->get_url())+strlen(alias)+5;

@ -92,6 +92,26 @@ __exit_execute_statement:
return ret;
}
int SQLite3DB::return_one_int(const char *str) {
char *error=NULL;
int cols=0;
int affected_rows=0;
int ret=0;
SQLite3_result *resultset=NULL;
execute_statement(str, &error , &cols , &affected_rows , &resultset);
if (error) {
proxy_error("Error on %s : %s\n", str, error);
free(error);
} else {
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
ret=atoi(r->fields[0]);
break;
}
}
if (resultset) delete resultset;
return ret;
}
int SQLite3DB::check_table_structure(char *table_name, char *table_def) {
const char *q1="SELECT COUNT(*) FROM sqlite_master WHERE type=\"table\" AND name=\"%s\" AND sql=\"%s\"";

Loading…
Cancel
Save