| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4399 人关注过本帖
标题:输入的值与数据类型或长度的长度不一致,或超出网格缓冲区
只看楼主 加入收藏
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:9 
输入的值与数据类型或长度的长度不一致,或超出网格缓冲区
大家好:
    最近做个小软件问题多多啊,发了好几个贴子了,多谢大家的帮助 。
    这次又出现一个问题,是关于SQL数据表的,我已在SQL论坛版块问了,但是没人作答。所以来此再请教。
    我的一个数据表,其中一个字段为文本(CHAR 20)的属性。前两天都是正常写数据的,今天突然就只能存储3个汉字了,在表单的文本框输入一直到保存时显示是正常的,但进入SQL数据表后,发现该字段的数据只有三个汉字,而且还不是我输入的,例如:我输入了“产品型号为三级”,进入数据表后显示为“成为的”三个字。太奇怪了。前两天已经存入的数据,如果我做一下改动(增或删),再保存也出现问题,就是提示“输入的值与数据类型或长度的长度不一致,或超出网格缓冲区”,除非只保留三个汉字就不会出错。求解
搜索更多相关主题的帖子: 缓冲区 数据表 文本框 天都 汉字 
2016-01-07 16:10
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:5 
把你字段改为
VARCHAR 20
在往SQL2000更新的时候,用ALLT()函数,去掉前后空格
2016-01-07 17:32
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:10 
1、对 CHAR 型,在企业管理器中直接修改某一记录,由短改长(就算是改长一个字符),都会出现“输入的值与数据类型或长度的长度不一致,或超出网格缓冲区”,如果是 UPDATE SET 就不会出现这提示.
2、你说:输入了“产品型号为三级”,进入数据表后显示为“成为的”三个字。
你可以在查询分析器中试下 INSERT INTO 表 (字段) VALUES ('产品型号为三级'),看看插入是否正确,然后再检查你的保存代码。

2016-01-07 18:33
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
回复 2楼 mywisdom88
好的,我按照你说的先把字段属性改了看看。但我觉得应该不是空格的问题(ALLTRIM()涵数)。因为我在SQL数据表中直接在那个字段里改动,越过三个字就会出现这个提示。而且把以前明明是已经存储的数据,改动后也会出现。例如,以前某记录行的那个字段已经存储好了“产品型号为三级”,这时我只要将“级”就删除,将光标移开,就会出现错误提示,只有继续删除,直到剩下三个字才可以保存数据。
2016-01-07 23:09
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
以下是引用kiff在2016-1-7 18:33:21的发言:

1、对 CHAR 型,在企业管理器中直接修改某一记录,由短改长(就算是改长一个字符),都会出现“输入的值与数据类型或长度的长度不一致,或超出网格缓冲区”,如果是 UPDATE SET 就不会出现这提示.
2、你说:输入了“产品型号为三级”,进入数据表后显示为“成为的”三个字。
你可以在查询分析器中试下 INSERT INTO 表 (字段) VALUES ('产品型号为三级'),看看插入是否正确,然后再检查你的保存代码。
我的这个字段没有改过属性,从建表就一直是CHAR 20长度。另外,我一直是在VFP表单的“保存”按钮中,使用的是INSERT INTO 插入语句,没用其他保存代码。
2016-01-07 23:11
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
不知道是不是我的SQL Server2000 有问题,前两天还有一个怪事,就是我建立了一个数据表,某个字段属性是MO。。。数据型,但输入数据时,这个字段类型竟然和相邻的一个字段类型串了,字段名”经办人”属性为CHAR 10,另一个字段名“经办日期”属性为MO... 8,但输入数据时“经办人”只认数值,且有小数,而“经办日期”是字符。可以输入任何字符,我晕。怎么改也不行,后来只有删除数据表,重建。不会是我的SQL数据库有问题吧。
2016-01-07 23:17
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
可能你SQL数据库有问题,看你说的不可能啊
2016-01-08 07:47
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用guitarist在2016-1-7 23:11:38的发言:

我的这个字段没有改过属性,从建表就一直是CHAR 20长度。另外,我一直是在VFP表单的“保存”按钮中,使用的是INSERT INTO 插入语句,没用其他保存代码。
似乎你没懂我的意思
2016-01-08 09:26
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
问题已解决。原因是空格位造成的。
一、我设置的字段为CHAR 20,如果在企业管理器里直接对数据表的字段输入数据,需要先删除全部空格,看似是空的,其实已被空格位占据,所以输入字符后就会超出长度。
二、我设置的字段长度20不够,改为30就没事了。我在客户端VFP表单里进行插入操作,一切正常了。
另外,我在查找原因时,在百度里搜索过该问题,看到一个人发的贴子里说也遇到同样问题,可以修改企业管理器的网格缓冲区来解决,但没具体说明设置步骤,有时间再研究一下。
谢谢大家的帮助。
2016-01-08 09:42
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
其实应该给大家付分的,但我没有分了,抱歉。
2016-01-08 09:42
快速回复:输入的值与数据类型或长度的长度不一致,或超出网格缓冲区
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026846 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved