informix学习总结 下载本文

内容发布更新时间 : 2024/5/20 8:21:20星期一 下面是文章的全部内容请认真阅读。

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) 不是闰年