如何从数据库一条一条的顺序读取一条记录比如:数据库有100条记录。我想按顺序,每次都读取一条记录出来。请问
如何从数据库一条一条的顺序读取一条记录
比如:数据库有100条记录。
我想按顺序,每次都读取一条记录出来。
请问各位如何实现?
我使用ole DB 访问数据库。
谢谢
[解决办法]
[解决办法]
- SQL code
--查询数据表第几行至第几行数据的SQL语句--如N行到M行(M>N) select top (M-N) * from tablename where id not in (select top N id from tablename)--id 为字段名,N为整型循环变量--稍作变形即可select top 1 * from tablename where id not in (select top N id from tablename)
[解决办法]
- SQL code
CREATE TABLE TEST (ID INT IDENTITY(1,1) ,NAME VARCHAR(20))INSERT INTO TEST SELECT 'ZHANG' UNION ALLSELECT 'LI'UNION ALLSELECT 'CHEN'DECLARE @NUM INTSET @NUM=1WHILE(@NUM<=100)BEGINSELECT * FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY GETDATE()) AS ROWID FROM TEST) TBWHERE ROWID=@NUMSET @NUM=@NUM+1END
[解决办法]
变通一下啊:
- SQL code
if exists(select 1 from sysobjects where name = 'PageRecord' and xtype = 'p') drop procedure PageRecordgoCREATE procedure [dbo].[PageRecord] @Sql nvarchar(4000), --查询字符串 @PageIndex int, --第n页 设置为第几行即可! @PageSize int --每页行数 设置为1即可! as set nocount on declare @p1 int, --p1是游标的id @rowcount int exec sp_cursoropen @p1 output,@Sql,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output set @PageIndex=(@PageIndex-1)*@PageSize+1 exec sp_cursorfetch @p1,16,@PageIndex,@PageSize select @rowcount --select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 exec sp_cursorclose @p1 set nocount off GO--每次读取1条数据EXEC [PageRecord] "SELECT * FROM USERINFO",1,1goEXEC [PageRecord] "SELECT * FROM USERINFO",2,1go
