我想删掉table中所有A1字段的数值不在ArrayString这个数组中的所有记录,程序执行很长时间,
请大家看看,里面是否有不合适的地方?思路把整个数据库每条的A1拣出来,比对数组里是否有和他一样的内容,没有的话,就把那条记录delete掉
Table1.IndexFieldNames:='A1';
Table1.setkey;
Table1.first;
while not Table1.eof do
begin
testString:=Table1.FieldByName('A1').AsString;
Write(f,testString);
for i := 1 to 14426 do
begin
if (ArrayString[i]=testString) then
break
else
if (i=14426 ) then
begin
Table1.Delete;
end;
end;
Table1.next;
end;
请大家看看,里面是否有不合适的地方?思路把整个数据库每条的A1拣出来,比对数组里是否有和他一样的内容,没有的话,就把那条记录delete掉
Table1.IndexFieldNames:='A1';
Table1.setkey;
Table1.first;
while not Table1.eof do
begin
testString:=Table1.FieldByName('A1').AsString;
Write(f,testString);
for i := 1 to 14426 do
begin
if (ArrayString[i]=testString) then
break
else
if (i=14426 ) then
begin
Table1.Delete;
end;
end;
Table1.next;
end;
解决方案 »
- 如何将BarCodeCtrl存储为*.bmp图片
- 怎么样使系统适应不同的分辩率?
- 打印:在QuickRep中打印BDChar的图形 怎么做?
- sql语句出错的提示?
- 简单问题---用access97定义数据库,adoquery组件连接后出现如下错误提示--在线给分
- 急:不能添加function、procedure
- 用adoquery查询运程数据库时,如查询未完成form不能动了,该如何处理?
- 创表时如何指定time和data的字段属性
- 求delphi7.0控件大全
- 一个概念性问题?
- 一个很简单的问题,为什么会报错?
- clientdataset 单机系统 数据在cds中,如何进行查询,可否使用sql语句
楼主是希望只清理数据库中定义了A1字段的表的内容吗?
其他没定义A1字段的表要不要动?
数组ArrayString有14426个那么多?
ArrayString[0]='a'
ArrayString[1]='b'
ArrayString[2]='c'
...你想判断testString是否在数组ArrayString里,可以把ArrayString的内容组合到一个字符串s里,
for i:=0 to 14426 do
s:=s+' '+ArrayString[i]//空格也可以用其他间隔符代替
这样s='a b c ..'
然后一个pos函数就搞定
很简单,但大多数人不会想到,呵呵
DELETE FROM Table1 WHERE FIELD NOT IN (select AAA from table2)