These are the standard PowerScript datatypes, followed by a description of each:
Blob Integer or Int
Boolean LongLong
Byte Long
Char or character Real
Date String
DateTime Time
Decimal or Dec UnsignedInteger, UnsignedInt, or UInt
Double UnsignedLong or ULong
Blob
Binary large object. Used to store an unbounded amount of data (for example, generic binary, image, or large text such as a word-processing document).
Byte
8-bit unsigned integers, from 0 to +255.
1、Blob类型:用来描述大的二进制对象,可存储海量数据(如图象、大文本等)。
2、Boolean类型:布尔类型,包括真(TRUE)和假(FALSE)两种值。
3、Integer 或int类型:16位带符号整数。值域为-32768~+32767。
4、Unsignedinteger,Unsignedint 或Uint类型:16位无符号整数。值域为0~65535。
5、Long类型:32位带符号整数。值域为 –2147483648~ +2147483647
6、LongLong类型:64位带符号整数。值域为 -9223372036854775808~ 9223372036854775807.。
7、Unsignedlong 或Ulong类型:32位无符号整数。值域为 0~4294967295。
8、Real类型:带符号的浮点数,6位精度。绝对值范围从1.17E-38~3.14E+38。
9、Double类型:带符号的浮点数,15位精度。绝对值范围从2.2E-308~1.7E+308。
10、Decimal 或Dec类型:带符号的数字序列。最多有18位有效数字。
11、Character 或 Char类型:单个ASCII码字符。
12、String 类型:ASCII码字符序列(字符串)。用常量时最大长度为1024,用变量存放长度可从0~600000变化。
13、Date类型:表示日期,由年(4位:1000~3000)、月(01~12)和日(01~31)组成。Time类型:表示24小时制时间。由时(00~23)、分(00~59)、秒(00~59)和秒的小数部分(最多有6位小数)组成。
14、DateTime类型:同时表示日期和时间。仅用于访问数据库的DateTime类型数据。可与日期类型或时间类型的值相互转换。
字符中的使用。
ANSI:ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。
DBCS:是 Double Byte Char Systems 的缩写,即双字节字符集,也就是亚洲的字符集,完全包容ANSI。
SBCS:是 Single Byte Char Systems 的缩写, 即单字节字符集,包容ANSI。
UTF8:变动长度Unicode编码,最短 1 个字节,一个中文字符占用三个字节。
UTF16LE:双字节Unicode编码, Unicode小尾数法字节顺序(little-endian),例子FF FE (字节顺序标志BOM)41 00 42 00 43 00 。BOM是byte-order mark的缩写。
UTF16BE:双字节Unicode编码,Unicode大尾数法字节顺序(big-endian),例子FE FF (字节顺序标志BOM) 00 41 00 42 00 43。
具体的改动有:
1、PowerBuilder 10 PBLs中的源码全部采用UTF-16LE编码,而之前的版本都是采用ANSI编码。
2、pb10应用程序中输入的文本自动转化为Unicode格式,string和character数据类型只存储Unicode数据格式,并且增加或者改动了部分字符串操作函数。
3、一些涉及文件操作的函数作了修改。
4、外部函数的声明方式作了改动。
5、导入导出文件可以选择编码方式。
6、pbni、xml、Web services等的Unicode支持。
对以前程序的影响:
1、在DBCS环境下,以前用len、mid、left等字符操作函数,都需要改为相应*A的格式,
2、某Api中使用的结构中有char数组。因为此api函数需要的是ANSI格式的数据,而pb10中只存储Unicode格式,如果使用char a[n] = "中文字符"的方式,结果会是乱码。