1.你可以用QUERY组件加一个EDIT组件;可以定义在EDIT中输入你想定位到的元祖一个字段值,比如表A的第N个元祖的"姓名"信息. 2.在EDIT(比如EDIT1)对应的ONCHANGE事件中写入如下代码(假定上面定义的QUERY为QUERY1,并确定把QUERY1的DATABASENAME属性选择你表在的数据库别名): PROCEDURE EDIT1ONCHANGE(.......) BEGIN with query1 do begin close; sql.clear; add('select * from A where A.姓名=:name'); params.parambyname('name').asstring:=edit1.text;//如果选择其他字段 prepare; //比如年龄等非字符型 open; //注意把EDIT1.TEXT转化 end; END;//在这个时候已经自动选种了你通过"姓名"字段筛选的第N个元祖了,如果你再用一个DBGRID1组件+一个DATASOURCE1组件,设置DATASOURCE1组件的DATASET属性为QUERY1,设置DBGRID组件的DATASOURCE属性为DATASOURCE1,你就可以看到你筛选的那条记录在里面了!
2.在EDIT(比如EDIT1)对应的ONCHANGE事件中写入如下代码(假定上面定义的QUERY为QUERY1,并确定把QUERY1的DATABASENAME属性选择你表在的数据库别名):
PROCEDURE EDIT1ONCHANGE(.......)
BEGIN
with query1 do
begin
close;
sql.clear;
add('select * from A where A.姓名=:name');
params.parambyname('name').asstring:=edit1.text;//如果选择其他字段
prepare; //比如年龄等非字符型
open; //注意把EDIT1.TEXT转化
end;
END;//在这个时候已经自动选种了你通过"姓名"字段筛选的第N个元祖了,如果你再用一个DBGRID1组件+一个DATASOURCE1组件,设置DATASOURCE1组件的DATASET属性为QUERY1,设置DBGRID组件的DATASOURCE属性为DATASOURCE1,你就可以看到你筛选的那条记录在里面了!