我在ACCESS中有这样一张表
姓名(文本)  密码(文本) 所属部门(文本) 生成日期(日期型) 权限(文本)我用ADOQUERY添加数据
var
name,password,departmen,right:string;
name:=Edit1.text;
password:=edit2.text;
department:=edit3.text;
right:=Edit4.text;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('insert into userpower values(:name,:password,:department,Date(),:right)');
adoquery1.execsql;
adoquery1.open;
为什么总是提示错误信息:数据类型错误?

解决方案 »

  1.   

    adoquery1.sql.add('insert into userpower values(:name,:password,:department,Date(),:right)');
    adoQuery1.parameter.parameterByName('name').value :=Edit1.text;
    ……   ……
    ……   ……
    adoquery1.execsql;
      

  2.   

    参数和变量不是一个概念
    虽然你的命名一样但不能代替
    adoQuery1.parameter.parameterByName('name').value:=name;必须加上
      

  3.   

    另外你的变量不要用name,password。有冲突
      

  4.   

    adoquery1.close;
    adoquery1.sql.text := 'insert into userpower values ( ' + quotedstr(Edit1.text) + ',' + quotedstr(edit2.text) + ',' + quotedstr(edit3.text) + ',' + quotedsrt(Edit4.text) + ')';
    adoquery1.execsql;
      

  5.   

    还有一个小毛病adoquery1.execsql; adoquery1.open;
    用一个就可以!
      

  6.   

    求一段代码,不是我懒啊,我实在试了很多方法也没做出来,我甚至用ADOTABLE也没对
      

  7.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.ConnectionString := ServerPath;//  服务器连接 ('Provider=MSDASQL.1;Password="";Persist Security Info=True;User ID=xfpjl;Data Source=XXXXX;Initial Catalog=XXXXX';)
    adoquery1.sql.add('insert into userpower values(:name,:password,:department,Date(),:right)');
    adoQuery1.parameter.parameterByName('name').value :=Edit1.text;
    adoQuery1.parameter.parameterByName('password').value :=Edit2.text;
    adoQuery1.parameter.parameterByName('department').value :=Edit3.text;
    adoQuery1.parameter.parameterByName('Date()').value :=Edit4.text;// ?????
    adoQuery1.parameter.parameterByName('right').value :=Edit5.text;
    adoquery1.execsql;
      

  8.   

    adoQuery1.parameter.parameterByName('name').value :=Edit1.text;
    adoQuery1.parameter.parameterByName('password').value :=Edit2.text;
    adoQuery1.parameter.parameterByName('department').value :=Edit3.text;
    adoQuery1.parameter.parameterByName('Date()').value :=Edit4.text;// ?????
    adoQuery1.parameter.parameterByName('right').value :=Edit5.text;
    adoquery1.execsql;
      

  9.   

    因为不返回结果集,,所以应该用ADOQUERY.EXESQL..
    你定义的字符串变量怎么能当成参数用呢?..
    呵呵...