informix学习总结材料.docx

上传人:b****4 文档编号:717429 上传时间:2022-10-12 格式:DOCX 页数:15 大小:271.72KB
下载 相关 举报
informix学习总结材料.docx_第1页
第1页 / 共15页
informix学习总结材料.docx_第2页
第2页 / 共15页
informix学习总结材料.docx_第3页
第3页 / 共15页
informix学习总结材料.docx_第4页
第4页 / 共15页
informix学习总结材料.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

informix学习总结材料.docx

《informix学习总结材料.docx》由会员分享,可在线阅读,更多相关《informix学习总结材料.docx(15页珍藏版)》请在冰豆网上搜索。

informix学习总结材料.docx

informix学习总结材料

INFORMIX的学习

第一章ESQL/C的数据类型

数据类型

SQL与C数据类型的对应

简单类型

SQL    C

CHAR(n)     char(n+1)

CHARCTER(n)   char*

SMALLINT     shortint

INTERGER

INT     longint

SMALLFLOAT

REAL     float

FLOAT

DOUBLEPRECISIONdouble

SERIAL     longint

DATE     longint

复杂类型

SQL     C

DECIMAL

DECNUMERIC     dec_torstructdecimal

MONEY     dec_torstructdecimal

DATETIME     dtime_torstructdtime

INREVER       intrvl_torstructintrvl

VARCHAR       varcharorstring

数据类型转换

转换类型 转换后

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(charbyte1,byte2,rptlen) 比较两组连续的字节存块。

bycopy(char*from,char*to,intlen)把一块存的容拷贝到另一块存。

byfill(char*to,intlen,charch)   用字符填充指定的存块。

byleng(charfrom,intcount)    统计有效字符的数目。

有效字符是指字符串去除了末尾空格所剩的字符。

3、字符串操作函数

ldchar(char*from,intnum,char*to) 拷贝定长串到空值结尾的串。

stchar(char*from,char*to,intnum) 拷贝空值结尾的串到定长串。

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*frmtchar*str) 生成具有确定格式的日期字符串。

(str字符串和fmt必须按月、日、年的同一顺序)

返回代码:

   0操作成功。

 -1204在str参数中有非法的月份。

 -1206在str参数中有非法的日期。

 -1209由于str中没有包含年、月、日各部分间的定界符,str的长

度必须准确定义为6或8个字节长。

 -1212fmt中没有包含年、月、日部分。

fmt和str的有效组合

 fmt        str

 “mmddyy”     “DEC25th1997”

 “mmm.dd.yyyy”  “dec251997”

 “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”    “Intheyear1997,themonthofDecember,its25thday”

 “dd-mm-yy”    “This25thdayofDecember,1997”

rmdyjul(shortmdy[3],long*jdate)用三个短整数生成一个部日期这三个整数是有关年、月、日的数字值。

(年必须以完整的形式表达)

返回代码:

   0操作成功。

 -1204在mdy[2]中有非法年份。

 -1205在mdy[1]中有非法月份。

 -1206在mdy[0]中有非法日期。

rstrdate(char*str,long*jdate)将一个字符串日期转换成一部格式的日期。

rtoday(long*jdate)     从系统日期创建一个部日期值。

2、从部日期转换成其他类型

rfmtdate(lingjdate,char*fmt,char*str)从部格式的日期类型值创建格式化的字符串。

返回代码:

   0操作成功。

 -1210部日期不能被转换成月-日-年格式。

 -1211程序存储溢出,即存储分配错误。

rjulmdy(longjdate,shortmdy[3])从一个部日期生成一个含有3个短整数的数组对应部日期的月、日、年。

rdatestr(longjdate,char*str)从一个部日期值创建缺省的日期字符串。

rdayofweek(longjdate)给定一部格式表示的日期,此函数返回所对应的星期中的某一天。

rleapyear(intyear)用来判断给定的年份是否为闰年。

返回值:

 TRUE

(1)  是闰年

 FALSE(0)  不是闰年

简单数值类型的格式化函数

rfmtdouble(doubledbval,char*fmt,char*str)将双精度格式化为指定的模板格式。

rfmtlong(doublelongval,char*fmt,char*str)将长整型值格式化为指定的模板格式。

可以构成格式模板串的字符:

*以星号代替空格。

&以0代替空格。

#代表一个数字或空格的位置。

<左调整,显示一个逗号,仅当左边有数字时才显示。

.显示一个小数点,一个格式模板串只能有一个小数点。

-显示负号,当数字为负的时候显示。

+显示正号,当数字为正的时候显示。

(显示一个负号,同(一起显示负值。

)显示一个负号,同)一起显示负值。

$显示美元符号。

处理空值的数值类型函数

risnull(inttype,char*cvar) 检查C变量是否为空值。

rsetnull(inttype,char*cvar)给C变量置空值。

(五)其他函数

typalign(intpos,inttype)返回一具有指定数据类型变量的下一个位置。

rtypmsize(intsqltype,intsqllen)返回你必须分配在存储单元中的指定的C或RDSQLD的字节数。

rtyname(intsqltype)返回一包含指定RDSQL类型名的以空结尾的串。

rtypwidth(intsqltype,intsqllen)返回一具有RDSQL类型的值转换为一字符类型时避免截取所需的最小字符数。

ESQL/C数据类型的进一步说明

DECIMAL数据类型的使用

1、DECIMAL函数——把C的数据类型转换为DECIMAL值

deccvasc(char*from,intlen,dec_t*to)把ASCII字符串转换成DECIMAL值。

返回值:

0转换成功

-1200数字太大,上溢。

-1201数字太小,下溢。

-1213存在非数值字符。

-1216存在错误指数。

注意事项:

(1)字符串的前导空格被忽略。

(2)字符串可以有前导符号“+”或“-”。

(3)字符串可以包含e或E的指数形式,指数前可带符号“+”或“-”。

deccvint(intfrom,dec_t*to)  把C的整数转化成DECIMAL值。

deccvlong(longfrom,dec_t*to) 把C的长整数转化成DECIMAL值。

deccvdbl(doublefrom,dec_t*to)把C的双精度值转化成DECIMAL值。

2、DECIMAL函数——把DECIMAL值转换成字符型

dectoasc(dec_t*from,char*to,intlen,intrt)把DECIMAL值转换成ASCII字符串。

说明:

len串缓冲区字节的最大长度。

rt表示十进制小数右边十进制的位数。

注意事项:

(1)rt=-1,则十进制位的个数有*from的十进制值决定。

(2)如果此数不适合长度len的字符串,则该函数将这个数转换为指数表示的形式。

如果仍不适合,则串用“*”号填满。

如果数的长度短于串长,则右对齐且左部用空格填充。

dececvt(dec_t*from,intndgt,int*decpt,int*sign)将一十进制数转换成以空格结束的具有指定个数的字符串,且返回此字符串的指针。

decfcvt(dec_t*from,intndgt,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操作产生上溢

-1201操作产生下溢

-1202试图用零作除数

3、DECIMAL函数——DECIMAL操作

decc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1