1、你的SQL语句有问题,要改为
dataunit.DataModule1.query1.SQL.Add('update 员工管理 set 员工代码=:员工代码,员工姓名=:员工姓名,员工级别=:员工级别,员工密码=:员工密码 where 员工代码=:原员工代码');
这么简单的原因不用我说吧。
2、错
改为
    dataunit.DataModule1.query1.prepare;
    ShowMessage(dataunit.DataModule1.query1.SQL); //调试用,看看你的SQL
    dataunit.DataModule1.query1.ExecSQL;
 
 

解决方案 »

  1.   

    好像是这样的
    showmessage(dataunit.datamodule1.query1.sql[0])
    sql是tsrings类型的
      

  2.   

    ary:
     在程序中我已给aa变量赋于原员工代码的值,不然的话,其他的字段就都不会改变了。
      

  3.   

    各位,第二个问题的意思是说我想根据一个combobox1.text的内容动态组成一个不提示语法错误的sql语句,比如说select * form zzz where zz='ttt',其中的zz便根据combobox1.text的内容随时改变,怎样编写??
      

  4.   

    halfdream:
      我已将'员工代码'设为主键
      

  5.   

    1。 这里不是主键的问题,你要将你想修改的字段与原有的字段值分开
    比如   员工代码=:员工代码,.....where 员工代码=:原来的代码
    这里要把员工代码(改过的)和原来的代码严格区分开来
    查询参数的时候最好用parambyname('员工代码‘),区分的好一点
    2。你的语句不享有问题,仔细查查参数是否出错
     我写了一个  sql.add('select * from table1 where '+combobox1.text+'=:参数');
    注意你的where 后面有没有空格
      

  6.   

    meijg:
        你回答我的第二个问题的结果和我一样,在第一次运行时总会报'incorrect syntax near '='。
      

  7.   

    我这里一切正常,你用了showmessage吗,看看sql语句到底是什么
      

  8.   

    可以的话,把你的源代码发过来看看
    [email protected]
      

  9.   

    meijg:
      我试过showmessage了,发现了一个问题:如果用sql.add('select * from table1 where '+combobox1.text+'=:参数');的语句,combobox1.text的内容不能替代入程序,如果用一个字段名称直接代替combobox1.text的内容(比如'员工代码')程序会识别此变量,如何解决?
      

  10.   

    你的combobox1.text里是什么内容,是字段的名字吗