procedure TFrmJshxx.Button1Click(Sender: TObject);
var qry_gzjl:TQuery;
begin
     qry_gzjl:=TQuery.create(nil);
     qry_gzjl.databasename:='rlzy1';
     with qry_gzjl do begin
     sql.Text:='insert into gzjlb(GONGZH) values(:P1)';
     ParamByName('P1').Asstring:='1';
     execsql;
end;
执行以后报错误"operation not application"!!但是如果把sql.Text:='insert into gzjlb(GONGZH) values(''1'')';,这样就没问题了,问题就是出现在ParamByName('P1').Asstring,这句提不到参数!请各位老大帮帮忙,小弟急用!!!

解决方案 »

  1.   

    qry_gzjl:=TQuery.create(nil);
    qry_gzjl.databasename:='rlzy1';
    qry_gzjl.paramcheck := true;
    ...
      

  2.   

    yjs_lh(长风浪子) ,这个方法不行!还是报那个错误!
      

  3.   

    你把语句这样写试下:
    ParamByName('P1').Asstring:='1';
    sql.Text:='insert into gzjlb(GONGZH) values(:P1)';
      

  4.   

    如果P1是个变量,SQL应该改为
    sql.Text:='insert into gzjlb(GONGZH) values('''+ P1 +''')';
    这样一定成的:)
      

  5.   

    试试:
    with sql do
    begin
      close;
      sql.clear;
      sql.add('insert into gzjlb(GONGZH) values(:P1)');
      ParamByName('P1').AsString := '1';
      if not Prepared then
        Prepare;
      Open;
    end;