请教一个SQL SERVER 字段类型的问题(50分)

  • 主题发起人 主题发起人 l_shungjun
  • 开始时间 开始时间
L

l_shungjun

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL SERVER 字段的varchar类型和nvarchar类型有什么区别?
一个字段A,当类型是varchar时,
bb=query1.fieldnyname('A').asstring 执行正确
而当字段A的类型为nvarchar时,
bb=query1.fieldnyname('A').asstring 不正确,
提示‘field 'A' not find ’
我不知道是什么原因,请各位老师多指教!
谢谢!
 
而当字段A的类型为nvarchar时,
bb=query1.fieldnyname('A').value,

试一下

 
采用的字符集不一样。
nvarchar是采用Unicode字符集
 
我想知道这两种类型分别用在那种情况
 
同意 :远帆
nvarchar是采用双字节存储,varchar是采用单字节。
nvarchar用于存放远东字符集,排序速度较varchar曼。
 
nvarchar要给出size吧,否则默认为字符串的头一个字母
 
nvarchar使用Unicode字符集,SQL Server支持这种类型,类似的还有ntext/nchar
但是ODBC不支持这种类型,因为ODBC是一种通用接口
如果你通过ODBC访问SQL Server,ODBC会将n类型的字段自动过滤掉
所以查询结果不会有这种字段,这就是‘field 'A' not find ’的原因
你可以用varchar代替nvarchar,这样更具有通用性
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
724
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部