我用AdoQuery往Access数据库的一张表里插数据,表有254个字段,在执行sql语句时报这个错误“字段太小而不能接收所要添加的数据的数量,试着插入或粘贴较少的数据.”,我在Access的查询里用sql插表成功,开始以为是每断sql过长,就分成了很多行,还是不行,甚至每个字段一行也不行,请问高手是什么问题,是AdoQuery的限制还是Access的限制,怎么解决?下面是sql语句:
“insert into crtcrd values(0521,'0199101111000001',01,1,0,NULL,'14',NULL,'9',NULL,11,'01','13','','15','','F',18,'1','O','1','01','1',NULL,'','','27','','','','','','',34,'1',NULL,37,'','','','',NULL,'','','','',NULL,'',NULL,'','','','','','',56,'57','58','59','A001','61','01','1','64','65',66,67,'','','','',NULL,NULL,NULL,'','','','','',NULL,'','','','','',NULL,'','','','','','',NULL,'','','','','','','','','','','','','',NULL,'01','109','','111','','F',114,'1','M','1',118,'119','120','1','122','123','124','125','A001','01','01','129','130',NULL,132,'','','','','','','',140,'B','','','','','',NULL,'','','',NULL,'','','','',NULL,NULL,'',NULL,'','','','','','','','','',NULL,NULL,171,NULL,'','','175',176,'177','178','179','180','181','1','0',25,'B','','187','188',0,0,NULL,0,0,NULL,'LT',0,197,0,0,'',NULL,NULL,NULL,NULL,'COUR',0,NULL,'A','A','0','0','','',NULL,'','3','','','','0','0','','','','','','','','','',NULL,'',NULL,NULL,NULL,'',NULL,NULL,'',NULL,'','',NULL,'',NULL,NULL,NULL,NULL,'','','',NULL,'','')”
这个还只是测试数据,要是正式数据的话里面很多数字都要变成文字,sql的长度肯定更大。

解决方案 »

  1.   

    字符串使用QuotedStr()函数,如QuotedStr('insert into crtcrd values(0521, ''0199101111000001 '',01,.....')
      

  2.   

    access表字段个数好像限制在255个内吧。。那么多字段,看着眼花..
      

  3.   

    xxmmmx:
    是不是这样:
    sqlstr:='insert into crtcrd values(0521,  ' '0199101111000001  ' ',01,..... ')';
    AdoQuery.SQL.Add(QuotedStr(sqlstr));
    就可以了?
      

  4.   

    自己多试试,注意两个单引号是连续的,中间没有空格
    sqlstr:= 'insert into crtcrd values(0521,   ''0199101111000001   '',01,.....  ') '; 
      

  5.   

    xxmmmx:
    试过了,不行,我最上面贴出来的sql语句已经是封装好的了,我是取的AdoQuery.SQL.Text的值,引号的问题在做封装的时候已经注意过了,报错应该还是在哪里有限制造成的。
      

  6.   

    其实这个问题很简单的,就是构建字符串的当中有单引号的问题,你可以查查这方面的资料。
    解决的方法也很简单,增加一Memo,把Sql内容显示出来,然后放到Access里查询
    AdoQuery.SQL.Add(QuotedStr(sqlstr)); 
    Memo1.Lines.Add(AdoQuery.SQL.Text);重点还是单引号问题
      

  7.   

    字段太小而不能接收所要添加的数据的数量,试着插入或粘贴较少的数据ACCESS中的某个字段定义的长度太小,让你增加字段长度呢!怎么和单引号扯上关系了?