一、分頁查詢
? 需求描述:客戶端查詢數(shù)據(jù)庫數(shù)據(jù)并顯示在表格中。在數(shù)據(jù)庫中進(jìn)行一次查詢,查詢結(jié)果有1050條記錄,但表格單頁可顯示行上限: 100,這時(shí)需要給本次查詢記錄分配 ?
頁用來顯示?
可以通過固定公式進(jìn)行計(jì)算(c偽代碼):
#define TABLE_SHOW_ROW 100
// 在大學(xué)學(xué)生表student中查詢年齡小于19歲的學(xué)生信息
char sql_stat[] = {"select stu_id, stu_name, stu_age, stu_sex, date_time "
"from student where stu_age < 19"};
int num_of_rec = sql_record_total_query(sql_stat);
char msg_page[1024] = {0};
int page;
int quotient= num_of_rec / TABLE_SHOW_ROW;
int remainder = num_of_rec % TABLE_SHOW_ROW;
if (num_of_rec > TABLE_SHOW_ROW)
{
if (remainder > 0)
page = quotient + 1;
else
page = quotient;
}
else
{
page = 1;
}
// 打印查詢結(jié)果頁面信息
sprintf(msg_page, "1 of %d", page);
上一頁和下一頁業(yè)務(wù)邏輯(c偽代碼)文章來源:http://www.zghlxwxcb.cn/news/detail-458590.html
int offset_val;
int page_now = active_page_get(msg_page);
if (event == click_page_up) // 當(dāng)客戶端點(diǎn)擊上一頁
{
offset_val = (page_now - 1) * TABLE_SHOW_ROW;
--page_now;
}
else if (event == click_page_down) // 當(dāng)客戶端點(diǎn)擊下一頁
{
offset_val = page_now * TABLE_SHOW_ROW;
++page_now;
}
char sql_stat[1024] = {0};
sprintf(sql_stat, "select stu_id, stu_name, stu_age, stu_sex, date_time from student "
"where stu_age < 19 order by date_time "
"OFFSET %d ROWS FETCH NEXT %d ROWS ONLY", offset_val, TABLE_SHOW_ROW);
sql_record_get(sql_stat, record);
table_record_show(record);
sprintf(msg_page, "%d of %d", page_now, page);
二、參考引用
7.3 SQL Server分頁查詢文章來源地址http://www.zghlxwxcb.cn/news/detail-458590.html
到了這里,關(guān)于SQL Server:分頁查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!