select top 1 * from table1 order by 可用于标识记录顺序的字段 desc
//比如你的表table有一字段(编号)的值是不可重复 CREATE TABLE #t(序号 int IDENTITY(1,1),编号 varchar(20)) INSERT INTO #t(编号) SELECT 编号 FROM table SELECT * FROM table WHERE 编号=(SELECT 编号 FROM #t WHERE 序号=(SELECT MAX(序号) FROM #t)) //在Delphi里实现var vSql : String; begin vSql := 'CREATE TABLE #t(序号 int IDENTITY(1,1),编号 varchar(20))'; vSql := vSql + 'INSERT INTO #t(编号) SELECT 编号 FROM table' + #13#10; vSql := vSql + 'SELECT * FROM table WHERE 编号=(SELECT 编号 FROM #t WHERE 序号=(SELECT MAX(序号) FROM #t))';
with ADOQuery1 do begin Close; SQL.Text := vSql; Open; end; end;
建议你通过表中的ID或者日期等标志来获取最后一条记录如: Select * from tablename where tableid =( select max(tableid) from tablename) 一般来说最后面的记录的ID较大,特别是系统自动增长类型的。 另外的方法是你可以直接的Select,而不要在数据集中使用排序功能,就是Index的属性
CREATE TABLE #t(序号 int IDENTITY(1,1),编号 varchar(20))
INSERT INTO #t(编号) SELECT 编号 FROM table
SELECT * FROM table WHERE 编号=(SELECT 编号 FROM #t WHERE 序号=(SELECT MAX(序号) FROM #t))
//在Delphi里实现var
vSql : String;
begin
vSql := 'CREATE TABLE #t(序号 int IDENTITY(1,1),编号 varchar(20))';
vSql := vSql + 'INSERT INTO #t(编号) SELECT 编号 FROM table' + #13#10;
vSql := vSql + 'SELECT * FROM table WHERE 编号=(SELECT 编号 FROM #t WHERE 序号=(SELECT MAX(序号) FROM #t))';
with ADOQuery1 do
begin
Close;
SQL.Text := vSql;
Open;
end;
end;
Query.Next;//下一条
Query.Prior;//前一条
Query.Last;//最后一条
Query.First;//第一条
Query.Next;//下一条
Query.Prior;//前一条
Query.Last;//最后一条
作成一 个右健菜单
就可以搞定 阿
Select *
from tablename
where tableid =(
select max(tableid)
from tablename)
一般来说最后面的记录的ID较大,特别是系统自动增长类型的。
另外的方法是你可以直接的Select,而不要在数据集中使用排序功能,就是Index的属性