用SQL语句查询出来一个数据集,其中包含 A,B,qty1 三列。另外设定一个变量qty2用来与qty1比较。
first
if qty2>0 then
  if qty2-qty1<=0 then
    sql := 'Insert into table(A,B,qty) values(a,b,qty2)'
    qty2 := 0
  else
    sql := 'Insert into table(A,B,qty) values(a,b,qty1)'
    qty2 := qty2-qty1;
    next;//到数据集第二条,再次进行比较,直到qty2<=0 
我这么写好像不对,哪位大哥能给纠正一下啊?
----------------------------------------------

解决方案 »

  1.   

    begin
      ......
    end写VB出身的?
      

  2.   

    选学学Delphi最基本的语法:
    "begin" "end" ";"
      

  3.   

    其实……其实我就是简写了一下,呵呵
    写成这样大家看对么?
    adoquery.first
    while qty2>0 do
    begin
      if qty2-qty1<=0 then
        begin
          sql := 'Insert into table(A,B,qty) values(a,b,qty2)';
          qty2 := 0;
        end
      else
        begin
          sql := 'Insert into table(A,B,qty) values(a,b,qty1)';
          qty2 := qty2-qty1;//再次进行比较,直到qty2<=0 
        end;
        adoquery.next;
    end;
      

  4.   

    是不大对劲,在循环到了最后一条,qty2还是大于零的情况下,最后一条会被循环多次。
    加个条件:
    while (qty2>0) and (not eof) do