使用GetFieldValue()的问题

micue 2009-04-16 07:52:21
当我用GetFieldValue()取字段值的时候,程序出现异常直接就退出了,没有提示任何的错误。调试的时候,发现了下面这个警告:Warning: date value out of range, returning NULL value.
不知道是为什么。请达人帮帮忙。

PS:我的数据库里存有图片,会不会和这有关?
...全文
629 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
micue 2009-04-20
我在网上找到了一篇相关文章

VC 查询数据时产生“无效的描述符索引”错误的解决办法

产生这个错误的可能性分别为:1.如果你是使用GetFieldValue ()来获取字段值的话,出现这个错误的原因应该是,你获取字段值的顺序和你数据库表里面的顺序不同。比如:你数据库表字段的顺序是:a ,b ,c;而你在程序里面获取时不是abc的顺序来获取的话就会出现这个错误。把GetFieldValue()的顺序调整为和数据库字段的顺序一样就可以了。

这个是我在网上找到的答案,不过和我遇到的问题完全不同。

2.我遇到的也是“无效的描述符索引”,但不是使用了 GetFieldValue()的问题,我没有用这个。我遇到的问题比较郁闷,在网上找了老半天也没找到答案,本来想上网找一下应该找得到答案的,没想到,唉。。。最后还是自己慢慢找,终于找出了问题所在。我出现这个错误的原因是我所查询的表里有一个image字段,并且我是用VC的向导生成的数据集,问题就在这个使用向导生成的数据集上,用向导生成数据集的时候,它会把image字段定义为CLongBinary类型,然后在 DoFieldExchange(CFieldExchange* pFX)函数里面生成“RFX_LongBinary(pFX, _T("[My_Image]"), m_My_Image);”“My_Image”为数据库image字段名,错误的地方就出现在这里了,当你查询的时候就会出现“无效的描述符索引”,比较具体的原因我还不清楚,但我已经解决了这个问题。解决的办法就是:把“RFX_LongBinary(pFX, _T("[My_Image]"), m_My_Image);”删除掉,然后在你的数据集类的构造函数里面,把m_nFields的值减1;至此,问题解决。
回复
asssasharp 2009-04-16
你获取的值已经超过了最大的范围限制。在数据库中改个更大点的范围吧。如果是图片的话。似乎有大小限制。多少忘记了。你不能把图片的大小改一下。或者数据库中存图片的链接。然后让程序去下载吗?传输图片很费时间,占用资源也很大啊。
回复
dong364 2009-04-16
我的猜想: 我觉得应该有关系, 数据库中保存图片, 我是没试过, 一般我的做法是保存图片的路径即可, 要存图片的话, 我想应该是存为二进制数据格式, 一副图片少则也得几十个KB, 用局部缓存变量可能会导致栈溢出, 如果要使用到, 就在堆上分配...
回复
相关推荐
发帖
数据库
创建于2007-09-28

3953

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2009-04-16 07:52
社区公告
暂无公告