请问在DELPHI中,如何定位记录?有代码,请修改!谢谢!

ADOQuery1.sql.text:='select*from试题库where编号>='+edit1.text;上述代码中的“编号”是一个字段。但它不是数据表中的真正记... ADOQuery1.sql.text := 'select * from 试题库 where 编号 >= ' + edit1.text;
上述代码中的“编号”是一个字段。但它不是数据表中的真正记录位置。
比如,我想在第100条记录开始查询,而编号很可能是108。
不知道,能不能将上述代码中的“编号”改为其它的代码,以确保查询时,能指向100。
非常感谢!
不好意思!我昨天没有把要问的意思说清楚。
我的意思是:在数据表“试题库”中,从某一指定记录数,而不是某一指定记录,开始答题。
因为,某一指定记录数,和 某一指定记录,有时候是不相同的。
比如,数据表中有一个“编号”字段,有时候,“编号”为100的那条记录,不一定就是数据表中的第100条记录。
现在,我要做的是,从第100道题开始,而不是从“编号”为100的记录开始答题。
因为不会写从某一指定记录数题开始答题的代码,所以,把代码写成了以下格式,但这条代码却成了从“编号”为某一指定记录字段数( edit1.text)开始答题的结果。
ADOQuery1.sql.text := 'select * from 试题库 where 编号 >= ' + edit1.text;
上述代码的问题出在“编号”,即where 编号 >= ' + edit1.text;中的“编号”。(“编号”是数据表中的一个字段)
请将“编号”修改为,能指定数据表中,记录数为strtoint(edit1.text)的记录。谢谢!
展开
 我来答
windblast
推荐于2017-10-31 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

试编写 SQL 语句如下,供参考:

SELECT *
FROM 试题库
WHERE (编号 Not In (SELECT TOP 100 编号 FROM 试题库 ORDER BY 编号))
ORDER BY 编号;

此 SQL 语句的思路是:先获取前100条记录,再获取排除这些记录的记录。需要注意的是“编号”字段是唯一值。

示例总数据如下:

 

获取的记录:

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
抱抱的爸爸
2011-05-06 · 超过24用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:54.4万
展开全部
var x:integer;
begin
x:=strtoint(edit1.text);
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.text := 'select 编号 from 试题库';
ADOQuery1.open;
ADOQuery1.MoveBy(x);
showmesage(ADOQuery1.fieldbyname(编号));
但是不建议你用*遍历整个表,因为你的表中全部数据有可能过大,建议单取编号,然后再用个ADOQuery检索该编号。 取该行数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
myxss
2011-05-06
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
在你的数据表中增加一个关键字字段“序号”,字段属性设置成“标识”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
conan415
2011-05-05 · TA获得超过138个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:208万
展开全部
例如需要查询table.number = 2,
可以用 while,
counter := 0;
while not query1.eof do begin
if counter > 100 then begin
if query1.fieldbyname('number').asinteger = 2 then // 查询number = 2
... ...
end;
counter ++;
query1.next;
end;

或者如果要用指针指定的话,可以用query1.locate('number',2,[]); // 查询number = 2
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邦浅魔千
2011-05-06 · TA获得超过220个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:355万
展开全部
ADOQuery1.sql.text := 'select * from 试题库 where 编号 >= (select max(编号) from (select top ' + edit1.text
+ ' 编号 from 试题库 order by 编号) temptb) ' ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式