关于数据库的一个现象.

maoke000 2008-01-30 10:30:20
Access数据库中的文本字段宽度是以字符为准的,用delphi开发时录入的宽度以单字节字符计算.

例如:一个字段 S_FName char(20),用Access,你可以输入全角,半角字符共计20个,
但是使用delphi编写的文本录入框在该字段上,最多可以输入半角字符20个.

这是为什么?

有没有在不修改数据库的情况下,让Delphi编写的程序适应Access数据库.
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahjoe 2008-02-02
  • 打赏
  • 举报
回复
ACCESS保存的是WideChar型,无论是汉字,还是英文,都是两个字节。所以指定宽度时,只要指定字符数,它会为每个字符分配两个字节的空间。
DELPHI里输入的是Char型,中文是双字节,英文是单字节的。所以在宽度指定上,它们的含义有差别。
程晨c 2008-01-31
  • 打赏
  • 举报
回复
微软就是这么做的。
Ascn 2008-01-30
  • 打赏
  • 举报
回复
没注意这个情况。一般我都是按照半角来计算的,所以数据库的字段长度可能会更大(更冗余)。如果你想让Delphi输入更多的字符,可以修改它的MaxLength属性。注意Delphi7中的Length计算的是字节数(半角),而Mid函数是把全角汉字当作一个字符处理的。
阿三 2008-01-30
  • 打赏
  • 举报
回复
还真没注意过这种情况,试了一下确实如此
关注一下,学习
maoke000 2008-01-30
  • 打赏
  • 举报
回复
不错,试一试mid,强制加宽

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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