Как перейти от последней записи к 10 записи перед последней? - PullRequest
0 голосов
/ 23 сентября 2019

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 Ответ

1 голос
/ 24 сентября 2019

Чтобы отобразить последние 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, вы можете использовать эти два последних варианта.

...