章鱼小丸子推车装饰图:oledbtype的字符串类型乍这么多?

来源:百度文库 编辑:高考问答 时间:2024/04/30 11:15:14
学习c#时我翻阅MSDN发现,oledbtype的字符串有很多类型,如
char是字符串 (DBTYPE_STR)。它映射到 String。
VarChar是非 Unicode 字符的变长流(只限 OleDbParameter)。它映射到 String。
VarWChar是Unicode 字符的变长、空终止流(只限 OleDbParameter)。它映射到 String。
WChar是Unicode 字符的空终止流 (DBTYPE_WSTR)。它映射到 String。
我想问的是:为什么oledbtype有这么多字符串类型,c#怎么没有?
变长流与非变长流的区分有什么意义?
什么是空终止流?与非空终止流区分有什么意义?哪位大侠帮帮忙,解释一下。

1.为什么oledbtype有这么多字符串类型,c#怎么没有?
oledbtype是面向数据库操作时提供的数据类型,应该要考虑到不同的系统,不同的语言等对数据库的访问,所以这些类型是设计用来满足多种需要的。C#做为一种程序设计语言,封装了很多的类型操作,其实底层会有一个转换,但提供不多的类型也更为了编程的方便

2.变长流与非变长流的区分有什么意义?
做这样的区别主要是为了传输使用的,比方说网络传输(还有其他比如内存字节交换等等也算传输),一般数据包有个固定长度,这时就使用非变长的,而如果用TCP连接传输就可以使用变长的了。

3.什么是空终止流?与非空终止流区分有什么意义?
我们知道C语言字符结束的时候会加上一个\n表示字符串结束了,这就是空终止流。区分的意义也是为了多种系统能够共享。比如UNIX用C语言写的就得考虑它得字符处理方式。