function CheckSame(TableName, FieldName, FieldValue: string): Boolean;
begin
try
with Alldata.QyTemp do
begin
Close;
SQL.Clear;
SQl.Add('select * from ' + TableName + ' where ' + FieldName + '=' + '''' + FieldValue + '''');
Open;
if RecordCount > 0 then
result := true
else
Result := false;
end;
except
application.MessageBox('读取数据出错!', '系统提示', MB_OK + MB_ICONinformation);
exit;
end;
end;
以上是小弟初学delphi写的关于判断是否有重复记录的,但如果是刚好在第一条记录找到的话,就很快,但是如果数据库记录n多的话,有刚好在最后一条找到,岂不是很慢,有没有什么好的算法啊??请教大家一下!!◎◎
begin
try
with Alldata.QyTemp do
begin
Close;
SQL.Clear;
SQl.Add('select * from ' + TableName + ' where ' + FieldName + '=' + '''' + FieldValue + '''');
Open;
if RecordCount > 0 then
result := true
else
Result := false;
end;
except
application.MessageBox('读取数据出错!', '系统提示', MB_OK + MB_ICONinformation);
exit;
end;
end;
以上是小弟初学delphi写的关于判断是否有重复记录的,但如果是刚好在第一条记录找到的话,就很快,但是如果数据库记录n多的话,有刚好在最后一条找到,岂不是很慢,有没有什么好的算法啊??请教大家一下!!◎◎
begin
try
with Alldata.QyTemp do
begin
SQL.Clear;
SQl.Add('select Count(*) from ' + TableName + ' where ' + FieldName + '=' + '''' + FieldValue + '''');
Open; //交换一下
Result := Fields[0].AsInteger > 0;
Close; //交换一下,否则浪费内存
end;
except
application.MessageBox('读取数据出错!', '系统提示', MB_OK + MB_ICONinformation);
exit;
end;
end;