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

Class db_ipc_request

lib_acl_cpp/src/db/db_service.cpp:28–115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26// �������̵߳Ĵ�����
27
28class db_ipc_request : public ipc_request
29{
30public:
31 db_ipc_request(db_handle* db, const char* sql, db_query* query, bool has_res)
32 : db_(db)
33 , sql_(sql)
34 , query_(query)
35 , has_res_(has_res)
36 {
37 }
38
39 ~db_ipc_request(void)
40 {
41 }
42
43protected:
44 // ���� ipc_request ���Զ����ô˻ص������������
45 virtual void run(ipc_client* ipc)
46 {
47 DB_IPC_DAT data;
48
49 data.db = db_;
50 data.query = query_;
51 data.rows = NULL;
52 data.affected_rows = 0;
53
54 if (!db_->dbopen()) {
55 ipc->send_message(DB_ERR_OPEN, &data, sizeof(data));
56 } else if (has_res_) {
57 if (!db_->sql_select(sql_.c_str())) {
58 ipc->send_message(DB_ERR_EXEC_SQL, &data, sizeof(data));
59 } else {
60 data.rows = db_->get_result();
61 ipc->send_message(DB_OK, &data, sizeof(data));
62 }
63 } else if (!db_->sql_update(sql_.c_str())) {
64 ipc->send_message(DB_ERR_EXEC_SQL, &data, sizeof(data));
65 } else {
66 data.rows = db_->get_result();
67 // �޸IJ�������Ҫȡһ�� SQL ����Ӱ�������
68 data.affected_rows = db_->affect_count();
69 ipc->send_message(DB_OK, &data, sizeof(data));
70 }
71 // ��Ϊ����������Ƕ�̬�����ģ�������Ҫ�ͷ�
72 delete this;
73 }
74
75#ifdef ACL_WINDOWS
76
77 // ������ӿڣ�ʹ���߳̿�����ִ��������������̷߳��� ACL_WINDOWS ������Ϣ
78
79 virtual void run(HWND hWnd)
80 {
81 DB_IPC_DAT* data = (DB_IPC_DAT*) acl_mymalloc(sizeof(DB_IPC_DAT));
82
83 data->db = db_;
84 data->query = query_;
85 data->rows = NULL;

Callers 2

sql_selectMethod · 0.85
sql_updateMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…