‘select* from 员工 where 员工编号=:员工'最后的":员工"~~前面有冒号就表示他是一个参数~~需要你给这个参数附值~~你Open了ADOQuery以后~~语句中有参数可是没有数值当然报错了~~你要是想增加永久字段的话这么写~~
select* from 员工 where 员工编号=‘001’

解决方案 »

  1.   

    至于在程序运行的时候~~可以动态的给参数附值with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add(' Select * From 员工 Where 员工编号=:aaa')
      Parameters.ParamByName('aaa').Value := '001';
      Open;
    end
      

  2.   

    这句话就是给参数aaa附值Parameters.ParamByName('aaa').Value := '001';
      

  3.   

    我用的就是书上的程序,是用adodataset的,他的要求就是当双击的时候能产生另外个窗口,它的双击的代码如下:
    adodataset4.active:=false;
    adodataset4.parameters.parambyname('员工编号').value:=
    adodataset1.fieldbyname('员工编号').value;
    adodataset4.active:=true;
    form2.showmodal;
    它就产生如下错误:
    adodataset1.field('员工编号')not find 
    但我早已在字段时加入了的。
    我觉得还是我上面的原因,就是在我设置的时候没有设置好。但不知道怎么改进它。
    table和query我还没有看呢。
      

  4.   

    哦??adodataset1.fieldbyname('员工编号').value;数据库的字段名字怎么是中文的??那是肯定报错的~~
      

  5.   

    直接运行那个数据库~~看看字段名是不是中文的??然后设计~~改成英文??
    活着数据库字段是英文~~但是你的那你在adodataset1.fieldbyname('员工编号').value直接写那个字段的英文名~~
      

  6.   

    是的,就是ACCESS下的,我的一个同事也运行了这个程序,不过他的可以,但是他也不知道是什么原因,据他说是重新运行了一次就行了,不过我的像是不行。
      

  7.   

    阿?Access的字段有一个是显示的属性~~那个到是可以是中文的~~
    他用你的程序没有问题吗?