database|ESQLC数据类型 - string类型

GBase8s ESQL/C字符串数据类型
GBase8s ESQL/C支持5种字符串数据类型, 如果在数据库的列中使用字符串类型,例如CHAR或者VARCHAR, 以下ESQL/C字符串类型可以使用:

  1. C语言的char类型
  2. GBase8s ESQL/C预定义类型, fixchar, string, varchar
  3. lvarchar数据类型

具体使用那种数据类型,参考以下条件:
  1. 是否希望ESQL/C使用空字符来作为字符串的结束符。
  2. 是否希望使用空白字符填充。

ESQL/C 字符串类型
ESQL/C 字符串类型
Null结尾
包含空白字符
【database|ESQLC数据类型 - string类型】char
Y
Y
fixchar

Y
string
Y
只有在列中包含空白字符时,才会包含空白字符, 不会自动添加空白字符。
varchar
Y
Y
lvarchar
Y


string数据类型
string类型是GBase8s ESQL/C预定义数据类型,保存以null终止符结尾,并且不填充空白字符的字符串。

当然, 如果数据库中的列保存的是空白字符, 使用string类型接收该数据时, string中也会包含空白字符。
当应用程序从CHAR列中获取数据并保存到string类型的变量中时, CHAR列中末尾的空白字符会被删除,并添加null终止字符。该行为与应用程序从VARCHAR列读取内容,保存到string类型的变量中一致。
如果环境变量BLANK_STRINGS_NOT_NULL设定为1或者其他任何值, string类型的变量保存一个空白字符和一个null终止字符。

声明string类型的长度为n+1, 其中n为数据库中列的长度,这样就可以保存null终止字符。
使用下面的格式声明string类型的变量.
EXEC SQL BEGIN DECLARE SECTION;
String str_name[n+1];
EXEC SQL END DECLARE SECTION;

    推荐阅读