问题还是没有解决,详细请看 “SQL中的Insert...Into怎么写?”

解决方案 »

  1.   

    大家也来看看吧!
    http://expert.csdn.net/Expert/topic/1637/1637307.xml?temp=.832287
      

  2.   

    你试试把 temp_bh 字段 trim() 处理一下
    你用的字符串类型可能有空格
      

  3.   

    select出来的数据有两条,那就是一个数据集了,
    insert语句只执行一次,插入其中一条数据分两个SQL写的话,是这样
    adoquery1.sql.clear;
    adoquery1.sql.add('Select Pat_ID,Counter from DataSet.db where Pat_ID=:a');
    adoquery1.Parameters.ParamByName('a').Value:=trim(temp_bh);
    adoquery1.open;
    if adoquery1.recordcount > 0 then 
      begin
       with adoquery1 do
       begin
         first;
         while NOT EOF do
           begin
             adoquery2.sql.clear;
             adoquery2.sql.add('insert into temp_meas (Pat_ID,Counter) values 
                  (:a,:b)');
             adoquery1.Parameters.ParamByName('a').Value:=adoquery1.fields[0].value;
             adoquery1.Parameters.ParamByName('b').Value:=adoquery1.fields[1].value
             next;
           end;
       end;
      end;
      

  4.   

    cxreal(夜晚的猪),按你的方法试过,出现错误:Type mismatch in expression.
    我反复检查程序,不知道问题在哪,相关代码见下面,query1.Close;
    query1.sql.clear;
    query1.sql.add('Select Pat_ID,Counter,StartDate,TotalCount,ErrorCount from DataSet.db where Pat_ID=:a');
    query1.ParamByName('a').Value:=trim(temp_bh);
    query1.open;if query1.recordcount > 0 then
      begin
    //   with query1 do
    //   begin     query1.first;
         while NOT query1.EOF do
           begin
    //         query2.Close;
             query2.sql.clear;
             query2.sql.add('insert into temp_meas (Pat_ID,Counter,StartDate,TotalCount,ErrorCount) values(:a,:b,:c,:d,:e)');         query2.ParamByName('a').Value:=query1.fields[0].value;
             query2.ParamByName('b').Value:=query1.fields[1].value;
             query2.ParamByName('c').Value:=query1.fields[2].value;
             query2.ParamByName('d').Value:=query1.fields[3].value;
             query2.ParamByName('e').Value:=query1.fields[4].value;
             query2.ExecSQL;
             query1.next;
           end; //while
    //   end; //with
      end; //if
    万分感谢大家!
      

  5.   

    你可以跟踪一下原因!
    先改一下试试!
    query1.ParamByName('a').Value:=trim(temp_bh);
    改为query1.ParamByName('a').asstring:=trim(temp_bh);
    .value都换成asstring
      

  6.   

    其实是关键字段的问题,Insert...into可以一次插入若干条记录。
    谢谢大家!