我是用delphi+Access;
请问一下,下面这段代码有什么错? 
sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+' and LastSendTime = #'+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+'#  where trialSetting_id='+trialSetting_id.Text;
    DataModule2.ADOQuery1.SQL.Clear;
    DataModule2.ADOQuery1.SQL.Add(sqlStr);
     DataModule2.ADOQuery1.ExecSQL;
为什么执行这条sql语句会出现下面提示错误:
“不正常的定义参数对象,提供了不一致或不完整的信息”
帮帮忙,谢谢各位了。

解决方案 »

  1.   

    clientequipid = '+IntToStr(maxId)+' and --〉
    clientequipid = '+IntToStr(maxId)+' ,
      

  2.   

    sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+' ,LastSendTime = #'+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+'#  where trialSetting_id='''+trialSetting_id.Text+'''';
      

  3.   

    sql更新记录字段不是用and的,字段间用,就行了
    sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+',LastSendTime = #'+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+'#  where trialSetting_id='+trialSetting_id.Text;
      

  4.   

    你可以现在access里面把sql语句试通过了再贴到delphi里面,再改参数
      

  5.   

    sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+',LastSendTime = #'+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+'#  where trialSetting_id='+QuotedStr(trialSetting_id.Text);
      

  6.   

    to zhujainf(笑熬糨糊拎壶冲) 
     你的方法,我试过了,问题就是在Access里面的可以执行的,放到delphi中就不行了,再帮帮忙吧,各位。
      

  7.   

    sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+
    ',LastSendTime = '+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+
    '  where trialSetting_id='+trialSetting_id.Text;
        DataModule2.ADOQuery1.SQL.Clear;
        DataModule2.ADOQuery1.SQL.Add(sqlStr);
         DataModule2.ADOQuery1.ExecSQL;
      

  8.   

    把你的SQL语句SHOW出来查查,再查查是不是数据类型上有问题
      

  9.   

    sqlStr := 'update trialSetting set clientequipid = '+IntToStr(maxId)+
    ',LastSendTime = '+#39+FormatDateTime('yyyy-mm-dd hh:mm:ss',now)+#39+
    '  where trialSetting_id='+#39+trialSetting_id.Text+#39;
        DataModule2.ADOQuery1.SQL.Clear;
        DataModule2.ADOQuery1.SQL.Add(sqlStr);
         DataModule2.ADOQuery1.ExecSQL;
      

  10.   

    sqlstr 不用也可以的:
        DataModule2.ADOQuery1.SQL.Clear;
        DataModule2.ADOQuery1.SQL.Add('update trialSetting set clientequipid =:p1 and '
                                      +'lastsendtime=:d2 where trialSetting_id=:p3');
        DataModule2.ADOQuery1.Parameters[0].Value:=maxId;
        DataModule2.ADOQuery1.Parameters[1].Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',now)
        DataModule2.ADOQuery1.Parameters[2].Value:=trialSetting_id.Text//如果是整数,则
                                                 //用:strtoint(trialSetting_id.Text)代替。
        DataModule2.ADOQuery1.ExecSQL;
      

  11.   

    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('update trialSetting set clientequipid =:p1 and '
                      +'lastsendtime=:p2 where trialSetting_id=:p3');
    ADOQuery1.Parameters[0].Value:=maxId;
    ADOQuery1.Parameters[1].Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',now);
    ADOQuery1.Parameters[2].Value:=trialSetting_id.Text;//如果是整数,则
    //用:strtoint(trialSetting_id.Text)代替。
    ADOQuery1.ExecSQL;
      

  12.   

    在前边加上:ADOQuery1.Parameters.Clear;
    ADOQuery1.ParamCheck := false;