在等于号之后加‘(’结尾也加‘)’就行!
Query1.sql.add('select * from pact');
query1.sql.add('where ecode=(select ecode');
query1.sql.add('from e_basic)');

解决方案 »

  1.   

    其实你应该这样写:
    Query1.sql.add('select p.* from pact p,e_basic e');
    query1.sql.add('where e.ecode=p.ecode');
      

  2.   

    改成
    Query1.sql.add('select * from pact,e_basic');
    query1.sql.add('where pack.ecode=e_basic.ecode');
    就行了。
      

  3.   

    Query1.sql.add('select pact.* from pact,e_basic where pact.ecode = e_basic.ecode ');
      

  4.   

    query1.sql.add('select A.* from pact A,e_basic B where A.ecode = B.ecode');
      

  5.   

    又有问题了,我通过dbgrid1显示e_basic中的字段内容,dbgrid2显示pact中的字段内容,我想做到当我点击dbgrid1中某一行时,dbgrid2中就出现与之相关的内容(通过ecode相同来联系两者之间的对应关系)。我照你们前面的语句修改了我的程序,不报错了,可是dbgrid2中的内容是不随着dbgrid1中行的改变而改变的,你们能帮我想想办法吗?
      

  6.   

    怎么建立主从结构呢?是不是要在table控件中做呢,但是我的table控件未设定tablename,想在程序运行中动态设定的,这样的话是否可以用主从结构呢?
      

  7.   

    是的,你的语法有问题。:=是负值符号,应用 = 号。再有直接等于不行,可以用Query1.sql.add('select * from pact where pact.ecode in (select e_basic.ecode from e_basic)');
      

  8.   

    在table控件中设定mastersource和masterfields.
      

  9.   

    to iseeks:
      这么多人指点你怎么不给分呢