为什么我用update不更新指定的字段及如何动态组成sql语句
hzzkf 2000-07-18 03:27:00 高手们,在下有两个问题请教大家:
1、我的程序中有这样一段语句
...
dataunit.DataModule1.query1.SQL.Add('update 员工管理 set 员工代码=:员工 代码,员工姓名=:员工姓名,员工级别=:员工级别,员工密码=:员工密码 where 员工代码=:员工代码');
if not (dataunit.DataModule1.query1.Prepared)
then dataunit.DataModule1.query1.Prepare;
dataunit.DataModule1.Query1.Params[0].asstring:=edit5.text;
dataunit.DataModule1.Query1.Params[1].asstring:=edit6.text;
dataunit.DataModule1.Query1.Params[2].asstring:=edit7.text;
dataunit.DataModule1.Query1.Params[3].asstring:=edit8.text;
dataunit.DataModule1.Query1.Params[4].asstring:=aa;(为一个设定的字段变量,借此在记录中定位)
dataunit.DataModule1.query1.unprepare;
dataunit.DataModule1.query1.ExecSQL;
...
可以用此语句更新表中某个定位记录的除'员工代码'(此字段为索引字段)外的字段,但却不能将'员工代码'字段的内容修改,除非将where条件语句删除,应如何解决?
2.我想在程序中动态组成sql语句,比如我想根据combobox1.text的内容组成一个语句'select * from 员工管理 where '+combobox1.text+' =:员工代码 order by 员工代码 asc ',我可以先将它存在一个字符串变量中用于sql.add的语句中,编译后可以运行通过,但在每次使用时总是要出现一个sql 的基本语法错误提示,如何解决?谢谢