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多的话,有刚好在最后一条找到,岂不是很慢,有没有什么好的算法啊??请教大家一下!!◎◎
解决方案 »
- 关于Delphi的集合类型的赋值问题
- 怎样用Tquickreport报表中的TQRDBtext竖着显示汉字?
- IDFTP控件问题
- 如何打印图象信息
- 关于reportbuilder的一个问题,谢谢!
- 起床了,发现裤衩多了一个,高兴。。。。。散分!!!
- 我的论坛彻底改版了。界面华丽,欢迎光临。
- 编译时出现:statement expected but 'procedure' found,请问怎样调试?
- Quickreport 能用选压栏纸(连张纸)打印吗?
- 大家是多层结构用得多,还是双层结构多?
- 如何把Byte数组转换成为String
- 急急急~~~zswangII(伴水清清)(一贴不灌,何以灌天下?) 请来看看!!!
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;