在Sql Explore 上能够正常执行这两条语句:,
insert into sys (userid,password,name,power) values(:id,:password,:name,:power)
update sys set password='555' where name='chen9681'

解决方案 »

  1.   

    用这种试试
    Parameters.Items[i].Value:=edtName.Text;
    据说ADO中没有parambyname 参数,请高人指点,是不是Items和parambyname都可以正常应用呢?
      

  2.   

    赋值时要注意两点:
    第一, 类型一致 
    第二, 如果是字符串的,则赋值时注意在两边加上单引号,可以使用QuotedStr函数
     如parameters.parambyname ('name').value := QuotedStr(Label5.Caption);
      

  3.   

    真是奇怪!我在D5+ACCESS2000下调试这个语句:
     SQLs:='insert into User(username,password,power) '
         +'values ("'+'aa'+'","'
                                +'bb'+'","*@@@@@")';                          // +'values ("'+Edname.text+'","'
                              //  +Edit3.text+'","*@@@@@")';
        ADOConnection1.Execute(sqls);
    可在ACCESS2000下能正确通过,在DELPHI下提示INSERT语句出错!请高手指点。
      

  4.   

    字符串在ACCESS下要使用双引号。
      

  5.   

    TNND,小妹找到病因了,
    在ACCESS中表名和字段名外要加上[],改为
    sql.add ('insert into [sys] ([userid],[name],[password],[power]) values (:id,:user,:password,:power)');
    一切OK!
      

  6.   

    今天我又试了一下,在SELECT 语句中可以使用parameters.parambyname(ADO).在DELETE中也可正常使用。
    我的参数据类型是对的啊,都是字符的
    TO:cxsandsand(楚雄小琳琳) 回去我再去试试看。
      

  7.   

    不行啊,insert反到可以用的了(语句还是不变,我也不知道是怎么的一回事),updata不行,老样子,SOS!!