with Query1 do
begin
//插入,需要两个表的结构一致,否则需要指定字段
  Close;
  SQL.Clear;
  SQL.Add('insert into bbb select * from aaa where Field1='''+Edit1.Text+'''');
  Prepare;
  ExecSQL;
//查询
  Close;
  SQL.Clear;
  SQL.Add('select * from bbb ');
  Prepare;
  ExecSQL;
end;

解决方案 »

  1.   

    在Form上放 ADOQUERY1、DBGRID1、DATASOURCE1 各一个,然后再放一个EDIT1
    如果你会设置它们之间的关系,就自己设,如果不会,看看书,如果还是
    不会,我就告诉你.With adoquery1 do
     begin
       close;
       sql.clear;
       sql.add('select * from table where field_name='''+trim(edit1.text)+'''');
       open;
     end;
      

  2.   

    你直接查询出来不就可以了,为什么再创建临时表呢
    with Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add(select * from aaa where Field1='''+Edit1.Text+'''');
      Prepare;
      Open;
    end;
      

  3.   

    我刚才试了,是可以把结果写进那个bbb的库中了,但是在写进库中的同时,为什么dbgrid上没有显示呀的,说明:dbgrid的datasource是bbb的数据表
      

  4.   

    写进数据库之后
    bbb的数据表要重新查询一下
      

  5.   

    假如你已经将dbgrid,query,DataSource等组件都已经连接好,下面是通过Edit1.text向Query提供参数。
       提供参数的语句是这样的:Select * from dataBase where name=:Edit1.text;
       提供参数时注意使用的是=:参数,接下来通过Query的params传递参数。
    Query1.params.add[0]:=Edit1.text;这个完整的语句在帮助中有完整的说明
    查Tquery的Params属性,有示例的。了   
      

  6.   

    谢谢各们的关注,但是情况还是没有好转.我的dbgrid已经连到从原库查询过来的新库上(bbb),新查询的数据还是不能在dbgrid上显示
      

  7.   

    上面兄弟们该说的了都已经说了,我来补充几点!第一、请使用一个共用的Query (即里面一个字段也不用去增加)
    第二、使用Select 语句时应使用与DBGrid所指定的Query去查询,就不能使用共用的Query去进行查询!如:
      With Query_bb do
        begin
            .......
        end;
    另:做其他的工作的时候请尽量使用共用的Query,如
      With Query_Share do
         begin
            .....
         end;
      
      

  8.   

    你用Tabel连接bbb表;查询以后,bbb表中有记录,你只要再加一句就可以了
    Tabel.active:=true;//tabel连接bbb表
      

  9.   

    非常感谢各位,已经调试通过了,不过用insert into bbb select * from aaa where .....这样的语句,是向库中插入的,这样第一次都是插到现在数据(可以是空记录)最后一行的后面,而我希望的是第一次都是插在这个bbb中的第一条记录上,后面的数据依次向后排,这样如何办