2013-03-18 7 views
3

Как узнать, есть ли я на последней записи набора записей. моя петля такова:Как проверить, находится ли я на последней записи ADO Recordset?

<%do while (adoRsTrade.AbsolutePage = iPageCurrent) and (not adoRsTrade.EOF) 
NewRep = adoRsTrade("calIncludedRep")%> 

У меня есть много коды между, но это, если утверждение, что имеет значение, он отображает подитог из представляемых данных до тех пор, как CurRep <> NewRep, что означает, что в настоящее время на набор следующих лиц данных

if (CurRep <> NewRep or FirstTime="T" and (not adorsTrade.BOF)) then 
    If FirstTime <> "T" then%> 
     <TR> 
     <td> 
      <table class='FontStandardMinus1' border=0 cellPadding=0 align='left' cellSpacing=0 width="100%" bgcolor='#ffffff'> 
       <TR> 
        <td width="59%" align="left"><b>SubTotals<!-- for <%Response.Write(CurRep) %>-->:</b></td> 
        <td width="10%" valign=top align=right><%=FormatNumber(totPrincipal,2)%></td> 
        <td width="7%" valign=top align=right><%=FormatNumber(totInterest,2)%></td> 
        <td width="7%" valign=top align=right><%=FormatNumber(totCommission,2)%></td> 
        <td width="5%" valign=top align=right><%=FormatNumber(totSECFee,2)%></td> 
        <td width="4%" valign=top align=right><%=FormatNumber(totSvcFee,2)%></td> 
        <td width="9%" valign=top align=right><%=FormatNumber(totNet,2)%></td> 
       </TR> 
      </table> 
     </td> 
    </TR> 
<%end if%> 

в основном мне нужно еще одно условие, которое говорит, если currep <> newrep или firsttime = «т» иЛИ если это последняя запись в ADO Recordset затем отобразить это промежуточный итог, а также.

<% 

FirstTime="F" 
CurRep = adoRsTrade("calIncludedRep") 
adoRsTrade.MoveNext 

loop%> 

любой помощь очень ценится, заранее спасибо, NickG

+0

Вы могли бы сохранить только RecordCountin переменную 'rsCount = AdorsTrade.RecordCount' (не забудьте использовать' adodb.CursorLocation = 3'), а затем сравнить его с простой переменной вы увеличиваете в цикле ('aktCount = aktCount + 1'). Что-то вроде 'If rsCount = aktCount Then'. – stare

ответ

5

Вы можете проверить EOF после вызова MoveNext на ваши записи, чтобы проверить, если вы находитесь на последнюю запись.

Например:

Do While adoRsTrade.AbsolutePage = iPageCurrent And Not adoRsTrade.EOF 
    ' DO SOME STUFF 
    ' -------------- 
    ' -------------- 
    adoRsTrade.MoveNext 
    If adoRsTrade.EOF Then 
    ' last record! 
    ' DO SOME OTHER STUFF 
    End If 
Loop