server存储过程翻页-在Access中模拟sql (server是什么意思)

教程大全 2025-07-18 18:04:09 浏览

sql server存储过程的翻页 是sql server数据库操作中重要的环节之一,下文中就在Access中模拟sql server存储过程翻页的过程,供大家参考。

sql server中翻页存储过程: Create PROC blog_GetPagedPosts(@PageIndex int,@PageSize int,@BlogID int=0,@PostType int=-1,@CategoryID int=-1,@Hiding bit =0,@Count int output)asdeCLARE @PageLowerBound intDECLARE @PageUpperBound intSET @PageLowerBound = @PageSize * @PageIndex – @PageSizeSET @PageUpperBound = @PageLowerBound + @PageSize + 1Create Table #IDs(TempID int IDENTITY (1, 1) NOT NULL,EntryID int not null)Insert into #IDs(EntryID) select DISTINCT [ID] from view_Content where CategoryID=@CategoryID and blogID=@BlogID order by [ID] descSELECT vc.*FROM View_Content vcINNER JOIN #IDS tmp ON (vc .[ID] = tmp.EntryID)WHERE tmp.TempID > @PageLowerBoundAND tmp.TempID < @PageUpperBound and vc.Hiding=0ORDER BY tmp.TempIDSELECT @Count=COUNT(*) FROM #IDSSELECT @Count=COUNT(*) FROM #IDSDROP TABLE #IDSreturn @CountGO

在Access中由于不支持存储过程,不能建立临时表只能在程序中实现 Access中实现如下,这也是我在myblog Access版中使用的: public List GetPagedPost(PagedPost p, out int TotalRecords){List list = new List();

using (OleDbConnection conn = GetOleDbConnection()){StringBuilder sql = new StringBuilder();sql.AppendFormat(“select [ID] from blog_Content as p “);//构造查询条件if (p.CategoryID > 0){sql.AppendFormat(“,blog_Categories AS c, blog_Links AS l WHERE c.CategoryID=l.CategoryID and (p.ID=l.PostID ) and c.CategoryID={1} and p.BlogID={0} “,p.BlogID, p.CategoryID);}else{sql.AppendFormat(” where p.blogID={0} “, p.BlogID);}if (p.PostType != PostType.Undeclared){sql.AppendFormat(” and p.PostType={0} “, (int)p.PostType);}sql.Append(” order by p.[DateUpdated] desc”);// NetDiskContext.Current.Context.Response.Write(sql.ToString());//NetDiskContext.Current.Context.Response.End();OleDbCommand MyComm = new OleDbCommand(sql.ToString(), conn);List IDs = new List(); //获取主题ID列表conn.Open();using (OleDbDataReader dr = MyComm.ExecuteReader()){while (dr.Read()){IDs.Add((int)dr[0]);}}TotalRecords=IDs.Count;//返回记录总数if (TotalRecords < 1)return list;int pageLowerBound = p.PageSize * p.PageIndex – p.PageSize;//记录索引int pageUpperBound = pageLowerBound + p.PageSize ;StringBuilder sb = new StringBuilder();if (TotalRecords >= pageLowerBound)for (int i = pageLowerBound; i < TotalRecords && i < pageUpperBound; i++){sb.AppendFormat(“{0},”, IDs[i]);//构造ID in() 条件,取其中一页}else return list; //如没有记录返回空表if(sb.Length>1)sb.Remove(sb.Length – 1, 1);//删除最后一个逗号MyComm.CommandText = string.Format(“SELECT b.* , c.Account as Account FROM blog_Content b, Blog_Config c where b.BlogID=c.BlogID and b.[ID] in ({0}) order by b.dateadded desc”, sb.ToString());using (OleDbDataReader dr = MyComm.ExecuteReader()){while (dr.Read()){list.Add(DataHelp.LoadDayBook(dr));}}return list;}}

上文中涉及到的代码比较多,看起来可能大家会觉得没有头绪,所以大家要静下心来,认真阅读文章中的知识,相信大家都能够从中收获。

【编辑推荐】


数据库存储过程怎么编写

SQL Server的语法:create procedure proc_name(@para1 int)assql-statement;Mysql的语法:create procedure proc_name(para1 int)sql-statement;上面的para1是参数,如果不需要可以省略括号里的内容sql-statement是你存储过程要执行的语句,如果还有什么疑问可以说出来

sql存储过程实例

CREATE OR REPLACEprocedure procedure_namebeginfor c in (select column_a_name from table_a_name)loopupdate table_b_name set column_b_name=_a_name loop;end;

mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同

server是什么意思

1、使用软件Navicat就可迁移复制数据库,打开Navicat,右键点击左边空白的地方,点击New Connection下的MySQL,创建一个服务器的连接,下面将演示把本地的数据迁移到服务器:2、在弹出的创建新连接的窗口里,输入服务器的IP,数据库账号,密码等,然后就可以连接数据库了:3、创建好后们打开本地的数据库,点击“Data Transfer”(数据传输),接着弹出新的界面:4、新窗口中在左边选择本地数据库的库,和需要转移的表,可以选择一个,或多个表:5、然后在右边的目标里,选择服务器的连接,然后选择服务器上的数据库:6、选择完成后,就开始进行数据转移了,数据量不是很大的,很快就会转移完成的。以上就是mysql中数据复制到另一个数据库的方法:

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐