我要将H:盘上的名为ABC.DBF的数据库中的所有性别为男的记录追加到位于E:盘的DBE.dbf中,这条SQL语句如何写?

解决方案 »

  1.   

    insert into dbe.dbf 
    select * from abc.dbf where sex='male';
      

  2.   

    可是写到QUERYQ.SQL.ADD()里,如何写呢,引号不知如何写,老报错。
      

  3.   

    Sql.Add('insert into ''E:\dbe.dbf '' select * from ''H:\abc.dbf'' where sex=''male''');
      

  4.   

    这样写行不行:
    Query1.SQL.Add('insert into "e:\dbe"  select * from  "h:\abc"');
      

  5.   

    我执行以上语句,为何报这样的错。
    Project Rzcl_dpr.exe raised exception class ENoResultSet with message 'Error creating currsor handle'.Process stopped.Use Step or Run to continue.
      

  6.   

    ... := 'select * from [abc.dbf] where sex=''male''';
      

  7.   

    首先我感觉如果两个表在同一个数据库中应该不用指明驱动器,好像直接调用就可以了,也许我记错了。其次Sql.Add('insert into '+'''E:\dbe.dbf ''' +'select * from '+'''H:\abc.dbf'''+' where sex='+'''male''');这样子写应该可以了。
      

  8.   

    知道原因了
    调用Open:适合于返回查询结果的查询,比如执行SELECT语句
    调用ExecSQL:适合于执行不返回结果的查询,比如执行INSERT、UPDATE或DELETE语句。
      

  9.   

    引号要这样子写才可以,对了清给几分好吗??Sql.Add('insert into'+'''E:\dbe.dbf'''+'select * from '+'''H:\abc.dbf'''+'where sex='+'''male''');别忘记给我几分。
      

  10.   

    不能用query1.open
    要用query1.execsql
      

  11.   

    Sql.Add('insert into ''E:\dbe.dbf '' select * from ''H:\abc.dbf'' where sex=''male''');