@@ -63,15 +63,15 @@ class ACL_CPP_API db_row
6363 * 从查询结果的记录行中取得对应下标的整数类型的字段值
6464 * @param ifield {size_t} 下标值
6565 * @param null_value {int} 当结果为空时,返回此值表示未有相应结果
66- * @return {int} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
66+ * @return {int} 当返回值与用户输入的 null_value 相同表明没有查到结果
6767 */
6868 int field_int (size_t ifield, int null_value = 0 ) const ;
6969
7070 /* *
7171 * 从查询结果的记录行中取得字段名的整数类型的字段值
7272 * @param name {const char*} 下标值
7373 * @param null_value {int} 当结果为空时,返回此值表示未有相应结果
74- * @return {int} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
74+ * @return {int} 当返回值与用户输入的 null_value 相同表明没有查到结果
7575 */
7676 int field_int (const char * name, int null_value = 0 ) const ;
7777
@@ -80,39 +80,45 @@ class ACL_CPP_API db_row
8080 * 从查询结果的记录行中取得对应下标的整数类型的字段值
8181 * @param ifield {size_t} 下标值
8282 * @param null_value {acl_int64} 当结果为空时,返回此值表示未有相应结果
83- * @return {acl_int64} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
83+ * @return {acl_int64} 当返回值与用户输入的 null_value 值相同时表明
84+ * 没有查到结果
8485 */
8586#if defined(_WIN32) || defined(_WIN64)
8687 __int64 field_int64 (size_t ifield, __int64 null_value = 0 ) const ;
8788#else
88- long long int field_int64 (size_t ifield, long long int null_value = 0 ) const ;
89+ long long int field_int64 (size_t ifield,
90+ long long int null_value = 0 ) const ;
8991#endif
9092
9193 /* *
9294 * 从查询结果的记录行中取得字段名的整数类型的字段值
9395 * @param name {const char*} 下标值
9496 * @param null_value {acl_int64} 当结果为空时,返回此值表示未有相应结果
95- * @return {acl_int64} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
97+ * @return {acl_int64} 当返回值与用户输入的 null_value 值相同时表明
98+ * 没有查到结果
9699 */
97100#if defined(_WIN32) || defined(_WIN64)
98101 __int64 field_int64 (const char * name, __int64 null_value = 0 ) const ;
99102#else
100- long long int field_int64 (const char * name, long long int null_value = 0 ) const ;
103+ long long int field_int64 (const char * name,
104+ long long int null_value = 0 ) const ;
101105#endif
102106
103107 /* *
104108 * 从查询结果的记录行中取得字段名的浮点类型的字段值
105109 * @param ifield {size_t} 下标值
106110 * @param null_value {double} 当结果为空时,返回此值表示未有相应结果
107- * @return {double} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
111+ * @return {double} 当返回值与用户输入的 null_value 值相同时表明没有
112+ * 查到结果
108113 */
109114 double field_double (size_t ifield, double null_value = 0.0 ) const ;
110115
111116 /* *
112117 * 从查询结果的记录行中取得字段名的浮点类型的字段值
113118 * @param name {const char*} 下标值
114119 * @param null_value {double} 当结果为空时,返回此值表示未有相应结果
115- * @return {double} 当返回值与用户输入的 null_value 值相同时表明没有查到结果
120+ * @return {double} 当返回值与用户输入的 null_value 值相同时表明没有
121+ * 查到结果
116122 */
117123 double field_double (const char * name, double null_value = 0.0 ) const ;
118124
@@ -312,16 +318,28 @@ class ACL_CPP_API db_handle : public connect_client
312318 virtual bool sql_update (const char * sql) = 0;
313319
314320 /* *
315- * 更安全易用的查询过程,调用此函数功能等同于 sql_select,只是查询对象 query
316- * 构建的 sql 语句是安全的,可以防止 sql 注入
321+ * 开始执行事务
322+ * @return {bool}
323+ */
324+ virtual bool begin_transaction () { return false ; }
325+
326+ /* *
327+ * 提交事务
328+ * @return {bool}
329+ */
330+ virtual bool commit () { return false ; }
331+
332+ /* *
333+ * 更安全易用的查询过程,调用此函数功能等同于 sql_select,只是查询
334+ * 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入
317335 * @param query {query&}
318336 * @return {bool} 执行是否成功
319337 */
320338 bool exec_select (query& query);
321339
322340 /* *
323- * 更安全易用的更新过程,调用此函数功能等同于 sql_update,只是查询对象 query
324- * 构建的 sql 语句是安全的,可以防止 sql 注入
341+ * 更安全易用的更新过程,调用此函数功能等同于 sql_update,只是查询
342+ * 对象 query 构建的 sql 语句是安全的,可以防止 sql 注入
325343 * @param query {query&}
326344 * @return {bool} 执行是否成功
327345 */
@@ -372,9 +390,9 @@ class ACL_CPP_API db_handle : public connect_client
372390 const std::vector<db_row*>* get_rows () const ;
373391
374392 /* *
375- * 获得执行 SQL 语句后的第一行结果,这对于唯一键的数据查询时显得比较便捷些
376- * @return {const db_row*} 返回空表示查询结果为空,如果返回结果非空,则必须
377- * 调用 free_result() 函数来释放中间的结果内存,否则会引起内存泄露
393+ * 获得执行 SQL 语句后的第一行结果,针对唯一键的数据查询比较方便
394+ * @return {const db_row*} 返回空表示查询结果为空,否则, 则必须调用
395+ * free_result() 函数来释放中间的结果内存,否则会引起内存泄露
378396 */
379397 const db_row* get_first_row () const ;
380398
0 commit comments