maincd是某个字符串
T_mainnum是数据表q2.Close;
 q2.SQL.Text :='select * from T_mainnum where cardnum= '+ maincd+'';
 q2.Prepared;
 q2.Open;
if q2.RecordCount=0 then
begin
...
end;
报错!求救!sos!

解决方案 »

  1.   

    maincd错,应该为QuotedStr(maincd)```
      

  2.   

    谢谢!这个问题折磨了我很久呢,终于弄出来了!
    还有一个
    q1.Close;
      q1.SQL.Text := 'insert into '+maincd+' ([CARDNUM],[username],[datetime],[TYPE],[STATE],[REMARK],[APPNUM],[EDITNUM]) values (:lcardnum,:lusername,:ldatetime,:ltype,:lstate,:lre,:lappnum,:leditnum)';
      q1.Parameters.ParamByName('lcardnum').Value :=cardnum;
      q1.Parameters.ParamByName('lusername').Value :=username;
      q1.Parameters.ParamByName('ldatetime').Value :=formatdatetime('yyyymmdd hh:nn:ss',now());
      q1.Parameters.ParamByName('ltype').Value := stype;
      q1.Parameters.ParamByName('lstate').Value := 1;
      q1.Parameters.ParamByName('lre').Value :=re;
      q1.Parameters.ParamByName('lappnum').Value := appnum;
      q1.Parameters.ParamByName('leditnum').Value := editnum;
      q1.Prepared;
      q1.ExecSQL;
    总是报错:无效参数啥的,郁闷啊!
      

  3.   

    断章取意!!
    这个错误也就是每个具体的参数,如::lcardnum等
      

  4.   

    :lcardnum,:lusername,:ldatetime,:ltype,:lstate,:lre,:lappnum,:leditnum这些参数名
    添加到QRY的Parmaters属性当中,并设置它们的属性和默认值在试一下
      

  5.   


    q1.Parameters.ParamByName('ldatetime').Value :=formatdatetime('yyyymmdd hh:nn:ss',now()); 
    //这句话有问题~
    Delphi把hh:nn:ss中的冒号当参数了
      

  6.   

    原来是我的dll调用有问题,牵连到了这个SQL出错,已解决,谢谢各位!