如何从最后一条记录浏览到最后一条记录之前的10条记录?

时间:2019-09-23 02:57:33

标签: sql vb.net firebird firebird2.5

Firebird与数据库的连接。如何从最后一个记录浏览到最后一个记录之前的第十个记录?下面的代码

Dim con As String = "User=SYSDBA;PASSWORD=masterkey;Database=/DATABASE/TIME_DBS/TC_SHPIRAG3ST4.gdb;Datasource=192.168.2.78;Port=3050;Dialect=3"
Dim conexiune As FbConnection = New FbConnection(con)
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    conexiune.Open()
    Try
        Dim sCmd As FbCommand
        Dim sql As String
        Dim ds As FbDataReader
        sql = "select * from RT_TIME ORDER BY RTTI_COUNTER desc"
        sCmd = New FbCommand()
        sCmd.Connection = conexiune
        sCmd.CommandText = sql
        ds = sCmd.ExecuteReader
        ds.Read()

        TextBox1.Text = ds("RTTI_BIT_POS")
        Label1.Text = ds("RTTI_HOOK_POS")

        ds.Close()
        conexiune.Close()
    Catch ex As FirebirdSql.Data.FirebirdClient.FbException
        MsgBox(ex.ToString, vbCritical, "DB Error")
    End Try

End Sub

1 个答案:

答案 0 :(得分:1)

要显示最后10条记录,您需要对查询应用降序,然后仅获取前10行。 Firebird支持执行此操作的几种方法:

SQL标准OFFSET/FETCH(Firebird 3.0及更高版本):

select * 
from <table>
order by <column-list> desc
fetch first 10 rows only

非标准FIRST/SKIP(Firebird 1.0及更高版本):

select first 10 * 
from <table>
order by <column-list> desc

非标准ROWS(Firebird 2.0及更高版本):

select * 
from <table>
order by <column-list> desc
rows 10

在Firebird 2.5中,您可以使用后两个选项。

相关问题