我写了一段代码,是这样的 
begin
query1.Close;
 query1.SQL.Clear;
 query1.SQL.Add('insert exp(序号,职工号,所在单位,所在部门) values('''+trim(edit1.text)+''' , '''+trim(edit1.text)+''', '''+trim(edit1.text)+ ''', '''+trim(edit1.text)+''')');
 query1.ExecSQL;
 query1.SQL.Clear;
 query1.sql.Add('select * from exp');
 query1.Active:=true;
end;出错提示是着样的:general sql error  [microsoft][odbc sql server driver][sql server]line 1:incorrect syntax near', '.
究竟应该怎么写?
请各位大哥帮帮忙了

解决方案 »

  1.   

    begin
    query1.Close;
     query1.SQL.Clear;
     query1.SQL.Add('insert exp(序号,职工号,所在单位,所在部门) values('''+trim(edit1.text)+''' , '''+trim(edit1.text)+''', '''+trim(edit1.text)+ ''', '''+trim(edit1.text)+''')');
     query1.ExecSQL;
     query1.SQL.Clear;
     query1.sql.Add('select * from exp');
     query1.Active:=true;
    end;是全角符的问题!!改成上面那样就好了
    btw:上午不是发过这样的张贴吗?
      

  2.   

    全角符:,  //打开输入法为全角时
    半角符:,   //关闭输入法法btw: 如果问题解决请尽快结贴!!包括上一张!免得热心人继续回复!
      

  3.   

    const
      sqlstr='insert exp(序号,职工号,所在单位,所在部门) values("%s","%s",%s,"%s")';begin
    query1.Close;
     query1.SQL.Clear;
     query1.SQL.Add(format(sqlstr,[edit1.text, edit2.text, edit3.text, edit4.text]));
     query1.ExecSQL;
     query1.SQL.Clear;
     query1.sql.Add('select * from exp');
     query1.Active:=true;
    end;这样写出错机会少很多,而且程序也美观一些.
      

  4.   

    呵呵,,何必那么麻烦呢?
    看到那些符号我头都晕啦。用变量不是更好吗?
    sql.add('insert into ****');
    sql.add('values(:a,:b,:c)');
    parameters.parambyname('a').value:=edit1.text;
    .
    .
    .
    .
    .
    exesql;
    这样看起来不是清晰 一点吗?
      

  5.   

    是清晰多了,但parameters怎么定义?