声明VARCHAR变量¶
可以将VARCHAR类型看作扩展的C结构,下面的语句:
VARCHAR username[20];
如果在预编译时加上-m选项,那么预编译器将其转换为一个字符串数组类型,放到目标C输出文件中。格式如下:
char username[20];
如果预编译时不加-m选项,那么预编译器将其转换为一个数据结构,放到目标C输出文件中。数据结构格式如下:
struct
{
unsigned short len;
unsigned char arr[20];
}username;
在执行SELECT、FETCH语句之后,如果采用字符串类型,那么长度可以通过调用表中C库函数strlen(username)得到;如果采用结构类型,那么神通数据库将取回字符的实际长度存放在VARCHAR变量的len成员中,因而用户可以很方便的执行某些操作,如
username.arr[username.len] = '\0';
在声明VARCHAR类型时,必须指定其最大长度,比如以下的声明是无效的:
VARCHAR username[];
VARCHAR变量的最大长度位于1-65535之间。