为了对数据纪录的重复检查,我需要取得DBGrid 的内容,怎样循环取得DBGrid中第一列单元格中的所有内容????
解决方案 »
- 关于ORACLE 的BLOB存储再开一帖
- 身份证号码有效性验证
- 有一个数据库,很大,字段名也很多,超过了A4的打印宽度,我用什么办法把这个数据库里的数据全部打印出来呢?
- 讨论:DELPHI的ISAPI用ADO连SQL SERVER 2000,用户多了出现错误的原因
- TO:ly_liuyang(Liu Yang) 快来拿分!第一份100分!
- 请教打开文本文件的函数
- 送分,简单的告诉order by这语句可以做什么效果吗
- TQRPreview怎么用???
- 这问题,你们碰过吗?当网络突然断线时,程序提示'连接失败',怎么也退不出应用程序!
- Form打印的问题????????
- Socket程序发送PChar类型结构体的有趣问题
- 这个问题我两个礼拜都没解决,你想看看吗?帮帮我吧!!!
begin
for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
begin
showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
dbgrid1.DataSource.DataSet.Next;
end;
你可以对dbgrid连接的dataset进行查询就可以了,举个例子:
如果你dbgrid连接的是一个table,数据库的名称为a1,第一个字段为mm,要检查的值为aa;
1.你在窗体上加一个query在检查重复中这样写:
query1.close;
query1.sql.clear;
query1.sql.add('select * from a1 where mm=''aa''');
query1.open;
if query1.recordcount>0 then
begin
showmessage('数据库中已经存在此数据,无法添加相同的记录!');
abort;
end;
begin
for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
begin
showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
dbgrid1.DataSource.DataSet.Next;
end;
begin
for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
begin
showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
dbgrid1.DataSource.DataSet.Next;
end;
var
Strs: TStringList;
Field: TField;
DataSet: TDataSet;
begin
DataSet := DBGrid1.DataSource.DataSet;
DataSet.DisableControls;
DataSet.First;
Field := DBGrid1.Columns[0].Field; Strs := TStringList.Create;
Strs.BeginUpdate;
while not DataSet.Eof do
Strs.Add(Field.AsString);
DataSet.EnableControls; Strs.Sort; //排序
Strs.EndUpdate;
//去掉重复项,已经排序了,所以很简单
Strs.Free;
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
while not DataSet.Eof do
begin
Strs.Add(Field.AsString);
DataSet.Next;
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————