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
答案 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中,您可以使用后两个选项。