谁能告诉我这到底是为了什么?一个菜鸟的困惑!!

gem168 2000-11-16 02:26:00
我用ado访问数据库,其中有一个表,它里面又有一些字段对应到其它表,我用Lookup字段来对它们进行赋值.可是我却遇到以下两个问题,着实让我丈二和尚摸不着头,希望哪位大侠能指点一下:
1.当我追加一个记录时(用Append),如果不是一次输入所有字段值的话,当我下次编辑这条新记录(用Edit)并用Post时它就会提示我“The specified row could not be located for updating:Some values may have been changed since it was last read!”,但是如果我将这个表先关闭再打开,然后再编辑这条新记录它就是正确的,难道它的Post并没有将新记录保存到表里吗?
2.当我删除一条记录时(用DeleteRecords),它始终提示“A given HRow referred to a hard- or soft-deleted row.”我先以为是我表里的当前记录不对,可是我把当前记录的值显示出来看却是正确的,而且我用Supports查看它是支持Delete操作的,
这又是为什么?
3.我用的是Access数据库。以前我一直认为两个一个汉字相当于两个英文的宽度,所以我就将文本字段的宽度设为X个汉字乘以2个宽度,但是我发现在Access里这个字段实际可以输入的汉字是X个汉字乘以2个,也就是文本宽度个汉字,可是在BCB里我用TDBEdit却只能输入X个汉字,即文本宽度除以2个汉字。这又是为什么?

由于小弟是菜鸟,需要问的问题很多,所以每次给的分数有限,希望各位大虾不要嫌少。
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yao_yuan 2000-11-17
  • 打赏
  • 举报
回复
1,2是比较奇怪,我感觉是DBGrid有时很怪,只能给点建议,1可能是lookup字段没有值造成的,2可能是ADO造成的
3到是较容易理解,access中可能用的是Unicode所以认为一个汉字(2byte)是一个字符,而BCB中却是一个字符的长度是一字节,一个汉字(2byte)就是两个字符,所以有这种情形
gem168 2000-11-17
  • 打赏
  • 举报
回复
我先也以为是Lookup字段造成的,可我后来又试了一次,只输入Lookup字段,其它字段不输入,但结果却是一样的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧