procedure TForm1.Button3Click(Sender: TObject);
var
str1,str2:string;
begin
str1:='XJ4FUPS42-1';
str2:='20130101' ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('update 测试时间');
query1.SQL.Add('set 测试时间=20130101');
query1.SQL.Add('where 蓄电池组名称=XJ4FUPS42-1');
query1.ExecSQL;
end;新手求教
数据库字段都是字符型
update set where.....请问我错在哪?
str1,str2变量代入也不行。

解决方案 »

  1.   

    var str1,str2:string;
    begin
      str1:='XJ4FUPS42-1';
      str2:='20130101' ;
       with query1 do
         begin
           close;
           sql.Clear;
           sql.Add('update 表名 set 测试时间='''+str1+''' where 蓄电池组名称='''+str2+'''');
           ExecSQL;
         end;
    end;
    {修改成这样,亲测!}
      

  2.   

    begin
    str1:='XJ4FUPS42-1';
    str2:='20130101' ;
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('update 测试时间');
    query1.SQL.Add('set 测试时间='+quotedstr(str2));
    query1.SQL.Add('where 蓄电池组名称='+quotedstr(str1));
    query1.ExecSQL;
    end
      

  3.   

    update, set,  where 前加空格调节。
      

  4.   

    代码尤其是SQL语句,能在一行写完的就一行写完,否则看起来很费劲。
      

  5.   


    procedure TForm1.Button3Click(Sender: TObject);
    const S_SQL = 'update 测试时间 set 测试时间 = %s where 蓄电池组名称 = %s';
    var 
    str1,str2 : string;
    begin
    str1:='XJ4FUPS42-1';
    str2:='20130101' ;
    query1.Close;
    try
    query1.SQL.text := format(S_SQL, [quotedstr(str1), quotedstr(str2)]);
    query1.ExecSQL;
    except on e: exception do
      showmessage(e.message);
    end;
    end;
      

  6.   

    说白了,还是你SQL语句的问题,中文跟int类型的不一样。好好看看数据库那本书。最好用临时的string来代替你的SQL语句更好,而且不容易出错。
      

  7.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
    str1,str2:string;
    begin
    str1:='XJ4FUPS42-1';
    str2:='20130101' ;
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('update 测试时间');
    query1.SQL.Add('set 测试时间=''20130101''');
    query1.SQL.Add('where 蓄电池组名称=''XJ4FUPS42-1''');
    query1.ExecSQL;
    end;
      

  8.   

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TForm1.Button3Click(Sender: TObject);
    const S_SQL = 'update 测试时间 set 测试时间 = %s where 蓄电池组名称 = %s';
    var 
    str1,str2 : string;
    begin
    str1:='XJ4FUPS42-1';
    str2:='20130101' ;
    query1.Close;
    try
    query1.SQL.text := format(S_SQL, [quotedstr(str1), quotedstr(str2)]);
    query1.ExecSQL;
    except on e: exception do
      showmessage(e.message);
    end;
    end;