OCT 增加一次查询获取所有结果的处理
This commit is contained in:
parent
0c30a1f257
commit
5ec7a37bd9
|
@ -302,7 +302,7 @@ int update_database(int module_id, void * db_handle, int op_type, char * tabl
|
||||||
* table_name - 创建的表名
|
* table_name - 创建的表名
|
||||||
* sql_str - 创建表的SQL语句
|
* sql_str - 创建表的SQL语句
|
||||||
* begin_num - 从第几条查询结果开始返回
|
* begin_num - 从第几条查询结果开始返回
|
||||||
* need_num - 应用需要返回的结果条数
|
* need_num - 应用需要返回的结果条数, 如果need_num = 0,表示返回所有数据
|
||||||
* param_num - 扩展参数组合数量,填写0表示没有,需要防止SQL注入问题,需要使用扩展参数组合
|
* param_num - 扩展参数组合数量,填写0表示没有,需要防止SQL注入问题,需要使用扩展参数组合
|
||||||
* Output:
|
* Output:
|
||||||
* return_num - 实际返回的结果条数
|
* return_num - 实际返回的结果条数
|
||||||
|
@ -341,7 +341,7 @@ void * select_datebase_by_number(int module_id, void * db_handle, char * table_
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((begin_num <= 0) || (need_num <= 0))
|
if ((begin_num <= 0) || (need_num < 0))
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -447,6 +447,12 @@ void * select_datebase_by_number(int module_id, void * db_handle, char * table_
|
||||||
}
|
}
|
||||||
|
|
||||||
json = cJSON_CreateObject();
|
json = cJSON_CreateObject();
|
||||||
|
if (NULL == json)
|
||||||
|
{
|
||||||
|
SQLCloseCursor(hstmt);
|
||||||
|
SQLFreeStmt(hstmt, SQL_DROP);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* 将应用程序数据缓冲区绑定到结果集中的列 */
|
/* 将应用程序数据缓冲区绑定到结果集中的列 */
|
||||||
for (i = 1; i <= column_nmuber; i++)
|
for (i = 1; i <= column_nmuber; i++)
|
||||||
|
@ -474,40 +480,87 @@ void * select_datebase_by_number(int module_id, void * db_handle, char * table_
|
||||||
|
|
||||||
/* 查询结果 */
|
/* 查询结果 */
|
||||||
FetchOrientation = SQL_FETCH_RELATIVE;
|
FetchOrientation = SQL_FETCH_RELATIVE;
|
||||||
for (i = 1; i <= need_num; i++)
|
|
||||||
|
/* need_num为0,表示一次返回所有找到的信息 */
|
||||||
|
if (0 == need_num)
|
||||||
{
|
{
|
||||||
ret = SQLFetchScroll(hstmt, FetchOrientation, begin_num);
|
while(1)
|
||||||
FetchOrientation = SQL_FETCH_NEXT;
|
|
||||||
if (ret != SQL_SUCCESS)
|
|
||||||
{
|
{
|
||||||
break;
|
ret = SQLFetchScroll(hstmt, FetchOrientation, begin_num);
|
||||||
}
|
FetchOrientation = SQL_FETCH_NEXT;
|
||||||
|
|
||||||
|
/* 查找失败,表示已经返回所有找到的信息 */
|
||||||
|
if (ret != SQL_SUCCESS)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ret_num++;
|
ret_num++;
|
||||||
|
|
||||||
cJSON_AddItemToArray(array, obj = cJSON_CreateObject());
|
cJSON_AddItemToArray(array, obj = cJSON_CreateObject());
|
||||||
|
|
||||||
for (j = 1; j <= column_nmuber; j++)
|
for (j = 1; j <= column_nmuber; j++)
|
||||||
{
|
|
||||||
if (SQL_BIGINT == db_column_info[j].dateType)
|
|
||||||
{
|
|
||||||
cJSON_AddNumberToObject(obj, db_column_info[j].name, *((long long *)&(value[j][0])));
|
|
||||||
}
|
|
||||||
else if (SQL_CHAR == db_column_info[j].dateType)
|
|
||||||
{
|
|
||||||
cJSON_AddStringToObject(obj, db_column_info[j].name , value[j][0]);
|
|
||||||
}
|
|
||||||
else if (SQL_DOUBLE == db_column_info[j].dateType)
|
|
||||||
{
|
|
||||||
cJSON_AddNumberToObject(obj, db_column_info[j].name , *((double *)&(value[j][0])));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
if (SQL_BIGINT == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddNumberToObject(obj, db_column_info[j].name, *((long long *)&(value[j][0])));
|
||||||
|
}
|
||||||
|
else if (SQL_CHAR == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddStringToObject(obj, db_column_info[j].name , value[j][0]);
|
||||||
|
}
|
||||||
|
else if (SQL_DOUBLE == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddNumberToObject(obj, db_column_info[j].name , *((double *)&(value[j][0])));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* 不支持类型,后续增加统计和打印 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i = 1; i <= need_num; i++)
|
||||||
|
{
|
||||||
|
ret = SQLFetchScroll(hstmt, FetchOrientation, begin_num);
|
||||||
|
FetchOrientation = SQL_FETCH_NEXT;
|
||||||
|
|
||||||
|
/* 查找失败,表示已经返回所有找到的信息 */
|
||||||
|
if (ret != SQL_SUCCESS)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret_num++;
|
||||||
|
|
||||||
|
cJSON_AddItemToArray(array, obj = cJSON_CreateObject());
|
||||||
|
|
||||||
|
for (j = 1; j <= column_nmuber; j++)
|
||||||
|
{
|
||||||
|
if (SQL_BIGINT == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddNumberToObject(obj, db_column_info[j].name, *((long long *)&(value[j][0])));
|
||||||
|
}
|
||||||
|
else if (SQL_CHAR == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddStringToObject(obj, db_column_info[j].name , value[j][0]);
|
||||||
|
}
|
||||||
|
else if (SQL_DOUBLE == db_column_info[j].dateType)
|
||||||
|
{
|
||||||
|
cJSON_AddNumberToObject(obj, db_column_info[j].name , *((double *)&(value[j][0])));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* 不支持类型,后续增加统计和打印 */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SQLCloseCursor(hstmt);
|
SQLCloseCursor(hstmt);
|
||||||
SQLFreeStmt(hstmt, SQL_DROP);
|
SQLFreeStmt(hstmt, SQL_DROP);
|
||||||
|
|
Loading…
Reference in New Issue