用SQL能做到嗎? 我的思路: Open; First i:= 1; for i:=1 to 15 do Next; while not Eof do beign prcAddData; next: end;
ORACLE吗? SELECT * FROM (SELECT ROWNUM RN ,a.* FROM your_table a) WHERE RN BETWEEN 15 AND 30SQL SERVER 中有没有数据集并,交,差的算,如果有可以这样: SELECT TOP 30 FROM your_table minus SELECT TOP 14 FROM your_table;
select top 15 * from (select top 30 * from yourtable order by key_column desc ) as fkey_column:指你排序的字段.
Query1.Open; Query1.MoveBy(15) i:=15; while not Eof do beign //do something //取数据! next: inc(i); if i>30 then break; end;
Query1.Open; Query1.MoveBy(15) i:=15; while not Query1.Eof do beign //do something //取数据! Query1.Next: inc(i); if i>30 then break; end;
老king的方法有意思! 值得发扬!
to madyak(下岗的程序员) 请问这样取出数据后,该怎样把取出的记录添加到dbgrid里。谢谢
用一个TQuery与dbgrid相连。 query1.sql.close; query1.sql.add(select top 15 * from (select top 30 * from yourtable order by key_column desc ) as f); query1.open;
to lihongyue(yue) 直接用dbgrid1.datasource.dataset:=query1;不行,我要的是把第15到第30条记录从表格里显示出来,而adoquery1中包含的是所有的记录,虽然madyak(下岗的程序员)的方法能够找到第15到第30条的记录,但是该怎样把它们取出来呢
老king说的是对的,但是我想按madyak(下岗的程序员)提供的方法把数据取出来。
比如你一个表里必须有一个关键字段为field,表名为table Sql语句为: SELECT (SELECT COUNT(field) FROM table WHERE a.field >= field) ReNo, * FROM table a ORDER BY field用Clientdataset构件,在Filter里写 ReNo>=15 and ReNo<=30 ,同时Filtered为true
我的思路:
Open;
First
i:= 1;
for i:=1 to 15 do
Next;
while not Eof do
beign
prcAddData;
next:
end;
SELECT * FROM (SELECT ROWNUM RN ,a.* FROM your_table a)
WHERE RN BETWEEN 15 AND 30SQL SERVER 中有没有数据集并,交,差的算,如果有可以这样:
SELECT TOP 30 FROM your_table
minus
SELECT TOP 14 FROM your_table;
Query1.Open;
Query1.MoveBy(15)
i:=15;
while not Eof do
beign
//do something
//取数据!
next:
inc(i);
if i>30 then
break;
end;
Query1.Open;
Query1.MoveBy(15)
i:=15;
while not Query1.Eof do
beign
//do something
//取数据!
Query1.Next:
inc(i);
if i>30 then
break;
end;
值得发扬!
请问这样取出数据后,该怎样把取出的记录添加到dbgrid里。谢谢
query1.sql.close;
query1.sql.add(select top 15 * from (select top 30 * from yourtable order by key_column desc ) as f);
query1.open;
直接用dbgrid1.datasource.dataset:=query1;不行,我要的是把第15到第30条记录从表格里显示出来,而adoquery1中包含的是所有的记录,虽然madyak(下岗的程序员)的方法能够找到第15到第30条的记录,但是该怎样把它们取出来呢
Sql语句为:
SELECT (SELECT COUNT(field) FROM table WHERE a.field >= field) ReNo,
* FROM table a ORDER BY field用Clientdataset构件,在Filter里写 ReNo>=15 and ReNo<=30 ,同时Filtered为true