delphi程序,数据库中有一个显示的是整型数字的字段,从中判断出最大值后,然后判断从1到最大数之
delphi程序,数据库中有一个显示的是整型数字的字段,从中判断出最大值后,然后判断从1到最大数之间遗漏的数字,并全部列到文本框中。...
delphi程序,数据库中有一个显示的是整型数字的字段,从中判断出最大值后,然后判断从1到最大数之间遗漏的数字,并全部列到文本框中。
展开
3个回答
展开全部
这个问题是典型的设标志的问题,对已用过的数值设标志,就能根据标志知道哪些数值没有使用过。设标志的方法很多,如果数值的范围不大,效率最高的就是用用数组(字符串也是数组),你的问题就是这种情况。给个简单的例子给你,具体算法自己看看代码吧。例子中把未使用过的数值放到下拉列表框中,这样应该更方便后续处理。如果你确实要放到文本框中,有了算法你自己不难做到。
追问
我的是delphi7,提示没有ansitring
追答
delphi7把uses中的AnsiStrings单无换成StrUtils单元,如果重复的去掉一个就可以。代码行中指定的AnsiStrings单元去掉即可。
展开全部
procedure button1.click();
var i:inteter;
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(select max(filename) as maxint from tablename ');
adoquery1.open;
i:=adoquery1.fieldvalues['maxint'];
adoquery2.close;
adoquery2.sql.clear;
adoquery2.sql.add(select distinct filename from tablename where filename<' + i );
adoquery2.open;
text1.text;
while not adoquery2.eof do
begin
text1.text:=text1.text + ',' + adoquery2.fieldvalues[filename];
adoquery2.next;
end
end
var i:inteter;
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(select max(filename) as maxint from tablename ');
adoquery1.open;
i:=adoquery1.fieldvalues['maxint'];
adoquery2.close;
adoquery2.sql.clear;
adoquery2.sql.add(select distinct filename from tablename where filename<' + i );
adoquery2.open;
text1.text;
while not adoquery2.eof do
begin
text1.text:=text1.text + ',' + adoquery2.fieldvalues[filename];
adoquery2.next;
end
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT DISTINCT col
FROM table tb INNER JOIN
(SELECT MAX(col) maxcol FROM table ) tb2
ON tb.col >=1 AND tb.col<tb2.maxcol
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询