MCPcopy Create free account
hub / github.com/acl-dev/acl / exec_sql

Method exec_sql

lib_acl_cpp/src/db/db_sqlite.cpp:821–859  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

819}
820
821bool db_sqlite::exec_sql(const char* sql, db_rows* result /* = NULL */)
822{
823 // ���뽫�ϴεIJ�ѯ���ɾ��
824 free_result();
825
826 if (sql == NULL || *sql == 0) {
827 logger_error("invalid params");
828 return false;
829 } else if (db_ == NULL) {
830 logger_error("db not open yet!");
831 return false;
832 }
833
834 char** results = NULL, *err;
835 int nrow, ncolumn;
836
837 // ִ�� sqlite �IJ�ѯ����
838 int ret = __sqlite3_get_table(db_, sql, &results, &nrow, &ncolumn, &err);
839 if (ret != SQLITE_OK) {
840 logger_error("sqlites_get_table(%s) error(%s)",
841 sql, __sqlite3_errmsg(db_));
842 __sqlite3_free_table(results);
843 return false;
844 }
845
846 if (nrow > 0) {
847 if (result != NULL) {
848 sqlite_rows_save(results, nrow, ncolumn, *result);
849 } else {
850 result_ = NEW db_rows();
851 sqlite_rows_save(results, nrow, ncolumn, *result_);
852 }
853 } else if (results) {
854 result_ = NULL;
855 __sqlite3_free_table(results);
856 }
857
858 return true;
859}
860
861int db_sqlite::affect_count(void) const
862{

Callers

nothing calls this directly

Calls 2

sqlite_rows_saveFunction · 0.85
db_rowsClass · 0.50

Tested by

no test coverage detected