informix学习总结
更新时间:2024-03-31 07:39:01 阅读量: 综合文库 文档下载
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) 将双精度格式化为指定的模板格式。 rfmtlong(double longval, char *fmt, char *str) 将长整型值格式化为指定的模板格式。 可以构成格式模板串的字符: *以星号代替空格。 &以0代替空格。
#代表一个数字或空格的位置。
<左调整,显示一个逗号,仅当左边有数字时才显示。 .显示一个小数点,一个格式模板串只能有一个小数点。 -显示负号,当数字为负的时候显示。 +显示正号,当数字为正的时候显示。 (显示一个负号,同(一起显示负值。 )显示一个负号,同)一起显示负值。 $显示美元符号。
处理空值的数值类型函数
risnull(int type, char *cvar) 检查C变量是否为空值。 rsetnull(int type, char *cvar) 给C变量置空值。 (五)其他函数
typalign(int pos, int type) 返回一具有指定数据类型变量的下一个位置。
rtypmsize(int sqltype, int sqllen) 返回你必须分配在存储单元中的指定的C或RDSQLD的字节数。
rtyname(int sqltype) 返回一包含指定RDSQL类型名的以空结尾的串。 rtypwidth(int sqltype, intsqllen) 返回一具有RDSQL类型的值转换为一字符类型时避免截取所需的最小字符数。
ESQL/C数据类型的进一步说明 DECIMAL数据类型的使用
1、DECIMAL函数——把C的数据类型转换为DECIMAL值
deccvasc(char *from, int len, dec_t *to) 把ASCII字符串转换成DECIMAL值。 返回值: 0转换成功
-1200数字太大,上溢。 -1201数字太小,下溢。 -1213存在非数值字符。
-1216存在错误指数。 注意事项:
(1)字符串的前导空格被忽略。
(2)字符串可以有前导符号“+”或“-”。
(3)字符串可以包含e或E的指数形式,指数前可带符号“+”或“-”。 deccvint(int from, dec_t *to) 把C的整数转化成DECIMAL值。 deccvlong(long from, dec_t *to) 把C的长整数转化成DECIMAL值。 deccvdbl(double from, dec_t *to) 把C的双精度值转化成DECIMAL值。
2、DECIMAL函数——把DECIMAL值转换成字符型
dectoasc(dec_t *from, char *to, int len, int rt) 把DECIMAL值转换成ASCII字符串。 说明:
len串缓冲区字节的最大长度。
rt表示十进制小数右边十进制的位数。 注意事项:
(1)rt=-1,则十进制位的个数有*from的十进制值决定。
(2)如果此数不适合长度len的字符串,则该函数将这个数转换为指数表示的形式。如果仍不适合,则串用“*”号填满。如果数的长度短于串长,则右对齐且左部用空格填充。
dececvt(dec_t *from, int ndgt, int *decpt, int *sign) 将一十进制数转换成以空格结束的具有指定个数的字符串,且返回此字符串的指针。
decfcvt(dec_t *from, int ndgt, int *decpt, int *sign) 将一十进制数转换成以空格结束、小数点右边具有指定位数的字符串,且返回此字符串的指针。
rfmtdec(dec_t *from, char *format, char *to) 将DECIMAL值转换成格式化的字符串。 1、 DECIMAL函数——把DECIMAL值转换成数值型 dectoint(dec_t *from, int *to); dectolong(dec_t *from, long *to); dectodbl(dec_t *from, double *to) 2、 DECIMAL函数——算术运算
decadd(dec_t *op1, dec_t *op2, dec_t *result); decsub(dec_t *op1, dec_t *op2, dec_t *result); decmul(dec_t *op1, dec_t *op2, dec_t *result); decdiv(dec_t *op1, dec_t *op2, dec_t *result); 返回代码: 0操作成功
-1200操作产生上溢
正在阅读:
informix学习总结03-31
生活小妙招作文800字06-24
家长会教师发言稿05-13
做风真好作文600字07-02
你伴我成长作文500字02-04
赞美雷锋的诗歌03-21
高中生积累小句 超赞09-12
会议欢迎词范文02-16
2015国家公务员考试笔试备考小建议903-08
- 2015复旦附中自主招生数学试题
- 《会计报表分析》经典讲义
- 10416综采工作面设计说明书
- 心理学在初中英语听力与口语教学中的作用
- CAD常用快捷键 2
- 03 定检非例行工卡维修方案编写&航材处理V1.0
- 公务员政审现实表现怎么写 - 图文
- 关于发供电煤耗的分析
- 小学传染病防治工作自查报告
- 2019届中考生物专题汇编显微镜的结构和使用
- 西方现代艺术赏析尔雅答案
- 2012年浙江事业单位《综合基础知识》试卷及答案解析(有范文)
- 中国石油大学华东物理化学实验思考题
- 中国传统导引养生术方法论特征及其当代价值
- 2015年国家公务员考试行测备考片段阅读 关键信息识别法考点习题
- 数学名师资源荟萃
- 香港可铭连续喷墨绘图机使用说明说明书
- 文学艺术基本知识
- 《工程经济学》复习资料(1)
- 安全管理中处罚更重要(辩论赛准备汇总)