在acess2000中增加又没关系的,而且也能用程序把表中的的记录查询出来。

解决方案 »

  1.   

    你的number在表中的位置如何?
      

  2.   

    删除这个number字段后倒是正常的了。
    象这种自动编号型的字段,在增加的语句中,难道也得为它弄一个ADOQryadd.parameters.parambyname('number').value:=?;的不成?如果要,又是如何?
      

  3.   

    一个IMAGE类型的字段,从数据库中把它存入IMAGELIST中最简单的办法是什么??
      

  4.   

    insert into table
    如果不指定字段,则认为是全部字段,所以会出现字段与你赋值不等,而自增字段是自动赋值的。
      

  5.   

    如果你是用 sql语句来实现记录的插入当数据表中使用了自增长字段往往会产生这种问题
    你可以试试用adotable方式 将你的表采用永久字段方式导入控件中 然后用append post 方法输入数据. 不过最好不要用那个自增长字段 关键字还是采用自己的唯一编码比较好
      

  6.   

    字段不对应!
    如果(:filename,:date,:filecategory,:projectcategory,:position,:memo
    是你的字段名
    AdoQryadd.SQL.Add('insert into tablename(filename,date,filecategory,projectcategory,position,memo)
     valueS //这也有问题
    (:filename,:date,:filecategory,:projectcategory,:position,:memo)');
      
      

  7.   

    : xBai21(小新) :为什么 说最好不要用自增长字段?我原来的关键字段也是个增加型的(自己做的),就是增加记录前先select max 字段值,再加1 ,是个integer型的,实际效果和acess的自增长型差不多,所以我想还是它那个算了。这两种方法有什么不同的地方不?
      

  8.   

    AdoQryadd.SQL.Add('insert into '+addtablename+'(filename,date,filecategory,projectcategory,position,memo) values(:filename,:date,:filecategory,:projectcategory,:position,:memo)');
    这样子了还有错:
    the application improperly defined a parameter!
      

  9.   

    INSERT INTO的语法应该是:
    INSERT INTO tablename [(fieldname{[, fieldname]})] VALUES (fielddata{[,fielddata]})
    如果不指定fieldname的列表,那么后面fielddata中数据出现的顺序必须与数据库表中字段的顺序一模一样;如果指定了fieldname列表,就只需要在fielddata中给出对应于fieldname列表的数据(顺序与fieldname列表的顺序一致即可。
    由此可见,你的程序有以下问题:(总结楼上朋友的意见)
    1、“value”应该改为“values”
    2、在fieldname列表中列出除了自动增加字段之外的其他需要更新的字段,然后在fielddata列表中逐一对应地提供数据即可。这个问题其实与自动增加字段无关,原因在于你没有给出字段列表。那条错误信息的意思是给出的数据的数量与数据表中实际的字段数量不匹配。假设你的数据表有1、2、3、4、5个字段,其中1是自动增加字段;但是你的语句中只给出了2、3、4、5字段的4个字段值,但系统期待是5个值,就会出这样的错误了。解决办法就是列出2、3、4、5这四个字段的名称,与给出的数据对应就可以了。
      

  10.   

    关键字无非是采用一个可用来作为唯一标识的方法
    如果只是简单采用自增长 自然可以是实现唯一标识的目的
    但对于数据采集的效率就没有什么意义了.
    你的sql语句带入那么多的参数
    后面是不是少了
    parameters[0].value:= filename的值
    .....
    parameters[5].value:= memo的值
      

  11.   

    还是不太明白了,越听越不明白了,呵呵。现在改成这样:
      AdoQryadd.Close;
      AdoQryadd.SQL.Clear;
      AdoQryadd.SQL.Add('insert into '+addtablename+'(filename,date,filecategory,projectcategory,position,memo) values(:filename,:date,:filecategory,:projectcategory,:position,:memo)');
      ADOQryadd.parameters[0].value:=RZlineEdit1.Text;
      ADOQryadd.parameters[1].value:=DxDateEdit1.Text;
      ADOQryadd.parameters[2].value:=RZComBoBox1.Text;
      ADOQryadd.parameters[3].value:=RZComBoBox2.Text;
      ADOQryadd.parameters[4].value:=RZComBoBox3.Text;
      ADOQryadd.parameters[5].value:=RZmemo1.Text;最后出错:the application improperly defined a parameter!
    上面的语句正确的应该如何写?如何可以简炼些?
      

  12.   

    是:the application improperly defined a parameter object!
    调试了一下,问题出在adoqryadd.execsql;这里了。前面的都没错。
    不合理的定义了一个参数对象?
    什么意思?
      

  13.   

    检查一个你的adoqryadd的设置,看看有没有什么不对的地方。
      

  14.   

    现在更难弄了,好象是(filename,date,filecategory,projectcategory,position,memo) 这一段有些不对,因为从表中去掉自增加的number也是出同样的错。而去掉这一行(上一行的英文)后倒正常了,当然前提是从数据表中去掉number。
      

  15.   


      AdoQryadd.Close;
      AdoQryadd.SQL.Clear;
      AdoQryadd.SQL.Add('insert into '+addtablename+'(filename,date,filecategory,projectcategory,position,memo) values(:filename,:date,:filecategory,:projectcategory,:position,:memo)');
      ADOQryadd.parameters[0].value:=RZlineEdit1.Text;
      ADOQryadd.parameters[1].value:=DxDateEdit1.Text;
      ADOQryadd.parameters[2].value:=RZComBoBox1.Text;
      ADOQryadd.parameters[3].value:=RZComBoBox2.Text;
      ADOQryadd.parameters[4].value:=RZComBoBox3.Text;
      ADOQryadd.parameters[5].value:=RZmemo1.Text;
      ADOQryADD.EXECSQL;
    不合理的定义了一个参数对象?.... date 字段是不是有点问题 而且 date是sql的保留字
    字段定义最好不要用这个 仔细检查一下你的其他字段类型 和你的参数输入有没有出入
    刚刚 随便写了一个类次的过程 没有发现问题 再有问题呼我 55440971 
      

  16.   

    算了算了,还是同样的错误,把date改了也不成。
    用不了adoquery,还有adotable呢,不用SQL增加了,用平常的insert post过过日子了。
    用SQL和用insert增加有什么区别吗?
      

  17.   

    用adoqery的insert和用adotable的insert还有和adodataset的insert增加有什么不同吗?