非常感谢各位的帮助,问题就出在我不能用QUERY控件执行查找操作,因为我的数据库是需要动态确定的,而用TABLE控件比用QUERY控件便于确定要使用的数据库,因此我用的是TABLE1。LOCATE(字段名,字段取值,),请问各位高手,怎样使用TABLE,又能在DBGRID中显示所查的数据,而不显示其余的!

解决方案 »

  1.   

    table 能做的 query 都能做!1.数据库不定
    用table的做法是
    table1.DatabaseName:=v_DBName;
    用query的做法是
    query1.DatabaseName:=v_DBName;2.表名不定
    (变量 v_table_name 表示表名)
    用table的做法是
    table1.tablename:=v_table_name;
    table1.open;
    用query的做法是
    query1.sql.text:='select * from '+v_table_name+' where ...';
    query1.open;3.字段不定
    用table的做法是
    1)当字段名不定,字段序号定时
    val1:=table1.fields[index].asstring;
    2)当字段序号不定,字段名确定时
    val1:=table1.FieldByName(fn).asstring;用query 的做法与上面相同4.查询条件不定
    用table 的做法是
    table1.filter:='sname='''+v_name+'''';
    用query的做法是
    query1.sql.text:='select ... from ... where sname='''+v_name+'''';
    query1.open;
    或者
    query1.sql.text:='select ... from ... where sname=:p_name';
    query1.parambyname('p_name').asstring:=v_name;
    query1.open;
    不知楼主说的“数据库是需要动态确定”是否包含在上述情况中,如果还有别的情况,请详述,我再告诉你用 query解决的方法
      

  2.   

    TABLE好像不能做查询操作,也许可以,但我没有用过。。你就在窗体加上一个QUERY吧。。