informix学习总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i n f o r m i x学习总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
INFORMIX的学习第一章 ESQL/C的数据类型
数据类型
SQL与C数据类型的对应
简单类型
SQL C
CHAR(n) char(n+1)
CHARCTER(n) char *
SMALLINT short int
INTERGER
INT long int
SMALLFLOAT
REAL float
FLOAT
DOUBLE PRECISIONdouble
SERIAL long int
DATE long int
复杂类型
SQL C
DECIMAL
DEC NUMERIC dec_t or struct decimal
MONEY dec_t or struct decimal
DATETIME dtime_t or struct dtime
INREVER intrvl_t or struct intrvl
VARCHAR varchar or string
数据类型转换
转换类型转换后
FLOAT DECIMAL(16)
SMALLFLOAT DECIMAL(8)
INTERGER DECIMAL(10,0)
SAMLLINT DECIMAL(5,0)
数据类型的转换函数
有关CHAR类型的函数
1、以空值结尾的串的操作函数
rdownshift(char *s) 把一个字符串中的所有字母转换成小写形式。
rupshift(char *s) 把一个字符串中的所有字母转换成大写形式。
stcat(char *s, char *dest) 把一个字符串同另一个字符串相连接。
stcmpr(char *s1, char *s2) 比较两个字符串。
stcopy(char *from, char *to) 把一个字符串拷贝到另一个字符串。
stleng(char *string) 统计字符串的长度。
2、定长串的操作函数
bycmpr(char byte1, byte2, rpt len) 比较两组连续的字节内存块。
bycopy(char *from, char *to, int len) 把一块内存的内容拷贝到另一块内存。
byfill(char *to, int len, char ch) 用字符填充指定的内存块。
byleng(char from, int count) 统计有效字符的数目。有效字符是指字符串去除了末尾空格所剩的字符。
3、字符串操作函数
ldchar(char *from, int num, char *to) 拷贝定长串到空值结尾的串。
stchar(char *from, char *to, int num) 拷贝空值结尾的串到定长串。
4、字符串函数简单数值转换
rstod(char *str, double *dblval) 把以空值结束的字符串转换成C的double型
rstoi(char *str, int *intval) 把以空值结束的字符串转换成C的int类型。
rstol(char *str, long *lngval) 把以空值结束的字符串转换成C的long类型。
DATE类型的函数
1、创建内部日期
rdefmtdate(long *jdate, char *frmt char *str) 生成具有确定格式的日期字符串。(str 字符串和fmt必须按月、日、年的同一顺序)
返回代码:
0操作成功。
-1204在str参数中有非法的月份。
-1206在str参数中有非法的日期。
-1209由于str中没有包含年、月、日各部分间的定界符,str的长
度必须准确定义为6或8个字节长。
-1212fmt中没有包含年、月、日部分。
fmt和str的有效组合
fmt str
“mmddyy”“DEC 25th 1997”
“mmm.dd.yyyy”“dec 25 1997”
“mmm.dd.yyyy”“DEC-25-1997”
“mmm.dd.yyyy”“12251997”
“mmm.dd.yyyy”“12/25/1997”
“yy/mm/dd”“97/12/25”
“yy/mm/dd”“1997,December, 25th"
“yy/mm/dd”“In the year 1997, the month of December, its 25th day”
“dd-mm-yy”“This 25th day of December, 1997”
rmdyjul(short mdy[3], long *jdate) 用三个短整数生成一个内部日期这三个整数是有关年、月、日的数字值。(年必须以完整的形式表达)
返回代码:
0操作成功。
-1204在mdy[2]中有非法年份。
-1205在mdy[1]中有非法月份。
-1206在mdy[0]中有非法日期。
rstrdate(char *str, long *jdate) 将一个字符串日期转换成一内部格式的日期。
rtoday(long *jdate) 从系统日期创建一个内部日期值。
2、从内部日期转换成其他类型
rfmtdate(ling jdate, char *fmt, char *str) 从内部格式的日期类型值创建格式化的字符串。
返回代码:
0操作成功。
-1210内部日期不能被转换成月-日-年格式。
-1211程序存储溢出,即存储分配错误。
rjulmdy(long jdate, short mdy[3]) 从一个内部日期生成一个含有3个短整数的数组对应内部日期的月、日、年。
rdatestr(long jdate, char *str) 从一个内部日期值创建缺省的日期字符串。
rdayofweek(long jdate) 给定一内部格式表示的日期,此函数返回所对应的星期中的某一天。
rleapyear(int year) 用来判断给定的年份是否为闰年。
返回值:
TRUE(1)是闰年
FALSE(0)不是闰年
简单数值类型的格式化函数
rfmtdouble(double dbval, char *fmt, char *str) 将双精度格式化为指定的模板格式。