Informix表达式
创建日期:2003/08/04
创建人:邹常青
最后修改日期:2003/08/20
最后修改人:邹常青
文档维护人:
文档版本号:
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类型。
数据结构课程设计哈希表设计问题
目录 1 前言 (1) 2 需求分析 (1) 2.1 任务和要求 (1) 2.2 运行环境 (1) 2.3 开发工具 (1) 3 分析和设计 (2) 3.1 系统分析及设计思路 (2) 3.2 主要数据结构及算法 (2) 3.3 函数流程图 (2) (1)哈希表的创建及初始化流程图 (2) 5 课程设计总结 (13) 5.1 程序运行结果或预期运行结果 (13) 说明:输入的数为30个姓的拼音,查找的为“pan”,输出的如上图所示。 (14) 5.2 设计结论 (15) 参考文献 (15) 致谢 (15)
1 前言 从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。 根据本次课程设计的要求,我设计小组将编写一个C语言程序来处理哈希表问题,通过这个程序,将针对自己的班集体中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。 2 需求分析 2.1 任务和要求 针对自己的班集体中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。 要求:假设人名为中国姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用链表法处理冲突。 2.2 运行环境 (1)WINDOWS2000/XP系统 (2)Visual C++ 6.0编译环境或TC编译环境 2.3 开发工具 C语言
3 分析和设计 3.1 系统分析及设计思路 (1)创建哈希表 (2)姓名(结构体数组)初始化 (1)用除留余数法构建哈希函数 (2)用链表法处理冲突 (3)查找哈希表 在哈希表中进行查找,输出查找的结果和关键字,并计算和输出查找成功的平均查找长度 (4) 显示哈希表 显示哈希表的的格式: 3.2 主要数据结构及算法 定义结构体typedef struct hashtable创建哈希表 定义函数Hash_Init(HashTable ht)来对哈希表初始化 定义函数Hash_Insert(HashTable ht, Node *node)来为哈希表分配地址 定义函数Hash_Init(ht)输入30个名字 定义函数Hash_Create(HashTable ht)来求哈希表长度 定义函数hash_output(HashTable h)来输出哈希表 定义函数Hash_Link()构造链表函数 定义函数int hash_search(int h[],int key)查找输入的名字 3.3 函数流程图 (1)哈希表的创建及初始化流程图
informix表空间规划命令整理 2010-02-24 11:16:02| 分类:技术知识| 标签:|字号大中小订阅 初始化informix数据库: oninit -ivy 此时,数据库是空的,什么都没有。 我们需要规划数据库空间,创建相应的物理表空间,逻辑表空间,临时表空间。 首先在dbs目录下创建相应的文件并给予权限: touch phydbs logdbs appdbs temp01 temp02 temp03 temp04 chmod 660 phydbs logdbs appdbs temp01 temp02 temp03 temp04 执行创建表空间的命令: onspaces -c -d phydbs -p {informixdir}/dbs/phydbs -o 0 -s 500000 【一般为300M。此处创建500M】 onspaces -c -d logdbs -p {informixdir}/dbs/logdbs -o 0 -s 1000000 【一般为1G,共10个逻辑文件】 onspaces -c -d appdbs -p {informixdir}/dbs/appdbs -o 0 -s 4000000 【自己数据库所在空间,大小根据实际情况而定】onspaces -c -d temp01 -t -p {informixdir}/dbs/temp01 -o 0 -s 500000 【临时表空间,一般为4个,大小为500M,注意到创建临时表空间命令中多了 -t 】 onspaces -c -d temp02 -t -p {informixdir}/dbs/temp02 -o 0 -s
一、DB-ACCESS应用工具的说明 使用DB-ACCESS可以方便的实现下面的功能: 1.调试、执行那些很少执行或只需要执行一次的查询; 2.方便的连接到一个或多个数据库服务器,在数据库服务器和外部文件之间交换数据, 或显示数据库的相关信息; 3.显示系统数据表和数据模式的信息; 4.作为一个方便的SQL语言的学习环境; 5.查看应用程序的执行结果,作为应用程序的测试工具; A.进入DBACCESS→$DBACCESS [DATABASE]若后方直接输入 DATABASENAME则一并开启之; 例:DBACCESS STORES@XYZ或DBACCESS //XYZ/STORES 打开XYZ数据库服务器上的STORES数据库,若选择当前数据库服务器上的 STORES数据库,则省略@XYZ(即:DBACCESS STORES); B.主功能选择 Query-Language→提供管理者一个SQLeditor,可自行输入SQL指令并执行 Connection→建立或断开与数据库服务器的连接 Database→提供管理者管理数据库的建立、异动与删除 Table→提供管理者管理数据表的建立、异动与删除 Session→描述数据库服务库和主机 Exit→退出DBACCESS C.Query-Language功能选择 New→清除Editor画面,输入SQL指令 若输入多条SQL语句,请用“;”将SQL语句分割开 Run→执行Editor中所输入之SQL指令 Modify→修改Editor中所输入之SQL指令 Use-editor→使用DBEDIT所指定的Editor当编辑器 Output→将执行结果产生至打印机或档案 Choose→选择已建立好的SQL档案复制到Editor中供使用 Save→Editor中所输入的SQL指令存至Editor中供以后参考使用 用户要保存的目标文件名最大长度为10个字符,DB-ACCESS自动为其添加 扩展名“.sql” Info→查询DATABASE与TABLE的资讯 Columns→显示指定表的列的信息,包括数据类型和是否允许为空值 Indexes→显示指定表的索引的名字、拥有者和类型(唯一索引和普通索引) Privileges→列出具有表级插入、删除等权限的用户列表 References→列出对指定表中的列具有关联权限的用户 Status→列出表的状态信息,字段数、记录数、行的大小、创建日期 Constraints→关联、主码、唯一限制和列的默认值 Triggers→触发器的相关信息 Table→选择表 Fragments→表的空间分配策略
一、问题描述 针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度均不超过R,完成相应的建表和查表顺序。 二、基本要求 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。 三、概要设计 1.构造结构体:typedef struct{}; 2.姓名表的初始化:void InitNameTable(); 3.建立哈希表:void CreateHashTable(); 4.显示姓名表:void DisplayNameTable(); 5.姓名查找:void FindName(); 6.主函数:void main() ; 四、详细设计 1.姓名表的初始化 void InitNameTable() { NameTable[0].py="louyuhong"; NameTable[1].py="shenyinghong"; NameTable[2].py="wangqi"; NameTable[3].py="zhuxiaotong"; NameTable[4].py="zhataotao"; NameTable[5].py="chenbinjie"; NameTable[6].py="chenchaoqun"; NameTable[7].py="chencheng"; NameTable[8].py="chenjie"; NameTable[9].py="chenweida";
NameTable[10].py="shanjianfeng"; NameTable[11].py="fangyixin"; NameTable[12].py="houfeng"; NameTable[13].py="hujiaming"; NameTable[14].py="huangjiaju"; NameTable[15].py="huanqingsong"; NameTable[16].py="jianghe"; NameTable[17].py="jinleicheng"; NameTable[18].py="libiao"; NameTable[19].py="liqi"; NameTable[20].py="lirenhua"; NameTable[21].py="liukai"; NameTable[22].py="louhanglin"; NameTable[23].py="luchaoming"; NameTable[24].py="luqiuwei"; NameTable[25].py="panhaijian"; NameTable[26].py="shuxiang"; NameTable[27].py="suxiaolei"; NameTable[28].py="sunyubo"; NameTable[29].py="wangwei"; for (i=0;i -101 ISAM错误:文件未打开。 ISAM处理器被要求使用一个未打开的文件(表)。对C-ISAM程序,程序试图在调用isopen打开文件前使用该文件,或是试图写一个只读方式打开的文件。如果错误再次 出现,请参考INFORMIX-Online的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -102 ISAM错误: 不合法的ISAM函数参数。 一个传递给C-ISAM函数的参数值超出了可接受的范围。对C-ISAM程序,检查这个函数调用中使用的参数,并与该函数的文档比较。如果错误再次出现,请参考INFORMIX- Online的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -103 ISAM错误: 不合法的键描述符(部分过多或是太长)。 ISAM处理器被给予了一个无效的键描述符。对C-ISAM程序,检查键描述符。每个键描述符最多可以有8个部分和120个字符。如果错误再次出现,请参考INFORMIX-Online 的“管理员指南”附录B,“陷井错误”以得到进一步诊断。有关诊断信息请与Informix技术支持部联系。 -104 ISAM错误: 打开文件过多。 ISAM处理器已经到达了打开文件数的极限。对C-ISAM程序,检查并改变程序逻辑使得它同时打开较少的文件。使用isclose来关闭不需要的文件。对SQL产品,这个查询过于复杂;它同时使用了过多的表。分步执行查询并使用临时表。 -105 ISAM错误: 坏的ISAM文件格式。 一个ISAM文件(表或索引)的内容已被损坏。对C-ISAM,如果已使用了事务日志,你可以用isrecover程序来恢复该文件。否则,重新建立或是从备份上恢复该文件。对SQL 产品,使用bcheck或secheck实用工具来获取有关此问题的进一步信息,可能的话改正错误(在INFORMIX-OnLine数据库服务器中使用tbcheck或是在INFORMIX-OnLine 动态服务器中使用oncheck)。如果实用工具不能恢复表或索引,你必须重新建立或 恢复它。 -106 ISAM错误: 非排它存取。 ISAM处理器被要求增加或取消一个索引,但它并没有排它存取权。对C-ISAM程序,在做这个操作之前文件必须以排它存取方式打开。检查程序逻辑,确保在打开文件时把ISEXCLLOCK标志传递给了isopen。对SQL产品,在要求对表的排它锁定时,INFORMIX-OnLine 动态服务器和INFORMIX-SE数据库服务器中可能会返回这个错误。 例如,当第一个用户锁定了表后,第二个用户又试图变更表时,就会出现这个错误。 Unix系统及数据库常用操作命令 oninit 数据库启动 onmode -ky 数据库关闭 onstat -l 查看逻辑日志使用情况 ontape -c 连续备份逻辑日志 onstat -g iof 查看每个chunk 的I/O 情况 onstat -g mem 查看数据库存的情况 onstat -d 查看数据库chunk 的使用情况 ontape -s -L 0 数据库0 级备份 dbimport 实习6、哈希表设计 一、需求分析 1. 问题描述 针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度均不超过R,完成相应的建表和查表顺序。 2. 基本要求 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。 3. 测试数据 取读者周围较熟悉的30个人的姓名。 4. 实现提示 如果随机数自行构造,则应首先调整好随机函数,使其分布均匀。人名的长度均不超过19个字符(最长的人名如:庄双双(Zhuang Shuangshuang))。字符的取码方法可直接利用C 语言中的toascii函数,并可先对过长的人名先作折叠处理。 二、概要设计 ADT Hash { 数据对象D:D是具有相同特征的数据元素的集合。各数据元素均含有类型相同,可唯一标识数据元素的关键字。 数据关系R:数据元素同属一个集合。 InitNameTable() 操作结果:初始化姓名表。 CreateHashTable() 操作结果:建立哈希表。 DisplayNameTable() 操作结果:显示姓名表。 DisplayHashTable() 操作结果:显示哈希表。 FindName() 操作结果:查找姓名。 }ADT Hash 三、详细设计(源代码) (使用C语言) #include IBM小型机系统维护命令使用总结 uname -a //操作系统版本 instfix -i|grep ML //操作系统补丁 prtconf //获取硬件信息 mklv -y lvinformix -c 2 rootvg 64 //创建逻辑卷lvinformix,大小为64(LP)×16M=1G,磁盘镜像后需用-c参数 crfs -v jfs -d lvinformix -m /opt/informix //在lvinformix上创建文件系统/opt/informix mount /dev/lvinformix /opt/informix //将设备mount到文件系统上 chfs -A yes /dev/lvinformix //修改所建文件系统的自动安装属性(Auto-Mount) //以上四步为创建文件系统四步曲 mkvg -t 16 -s 4 -y vgdata hdisk2 //在hdisk2上创建卷组vgdata,-t 16指定系数factor=16,-s 4指定物理分区大小PP SIZE=4MB //factor×PP SIZE×1016≥hdisk2的大小。如果factor×PP SIZE×1016的值< hdisk2的大小,//请适当调整factor和PP SIZE的值 varyonvg vgdata //激活卷组vgdata varyoffvg vgdata //去激活卷组vgdata exportvg testvg //如果在smcp2上已经有testvg的信息,则先删除原有信息(exportvg),再引入新信息(importvg) importvg -y vgsmp hdisk2 //将vgsmp信息引入hdisk2 lspv //查看hdisk和vg的对应关系 lsdev -Cc disk //查看磁盘名和磁盘类型(内置盘还是SSA外置盘) lsdev -Cc processor //查询cpu的个数 lscfg -v -l ent0 //查看网卡ent0的MAC地址 lsvg -o //查询所有激活的卷组 chfs -a options=rw,mind /tellinshare/sms //设置文件系统/tellinshare/sms的mind属性 //否则当文件系统中有足够多的大文件(指32K以上的文件)时会出问题 mkgroup id=101 informix //创建组informix,组编号101 mkuser id=101 pgrp=informix home=/opt/informix shell=/usr/bin/csh informix //创建用户informix,命令参数说明: //id:指定用户的id号,请根据规划设置; //pgrp:指定该用户的归属组,请根据规划设置; //home:指定该用户的home目录,请根据规划设置; 在Informix Dynamic Server 中创建并使用函数索引 随着数据量以惊人速度不断增长,数据库管理系统将继续关注性能问题。本文主要介绍一种名为函数索引(functional index)的性能调优技术。根据数据库使用情况的统计信息创建并使用函数索引,可以显著提升SELECT 查询的性能。通过本文了解如何在IBM ? Informix ? Dynamic Server 中创建和使用函数索引并最大限度提升查询性能。 简介 在选择数据库管理系统(DBMS)时,性能是一个关键的考虑因素。在执行SELECT、INSERT、UPDA TE 和DELETE 操作时,很多因素都会对性能产生影响。这些因素包括: 持久性数据存储的速度和大小 数据存储结构 数据访问方法 随着数据集不断变大,查询性能愈发变得重要。 通常,使用索引可以改善查询性能。索引将数据库中的行位置与一组有序数据子集和/或数据派生物关联在一起。索引可以减少DBMS 在执行查询时检查的行(或元组)数量,从而获得性能增益。有时,仅通过搜索索引即可完成查询,而不需要从表中取回任何元组(tuple)。例如,如果您在列c1 中建有索引,并且发出查询select c1 from t1 where c1 < 10 ,那么索引中包含了可以满足查询的所有信息。 有趣的是,ANSI SQL 标准并没有说明如何创建、实现或维护索引。因此,数据库供应商可以按照自己的方式自由地实现索引。 本文讨论了Informix Dynamic Server 的函数索引特性。要理解本文涉及的概念,您需要熟悉基本的数据库术语和概念,例如模式、表、行、列、索引和可扩展性。还需了解Informix Dynamic Server (IDS) 的基本配置以及如何启动和停止服务器、如何使用ONCONFIG 文件进行配置。此外,还需熟悉基本的SQL 命令以及如何使用dbaccess 对服务器执行SQL 命令。 本文的目的是帮助您理解函数索引的定义以及使用。此外,您还将了解如何创建和使用函数索引,以及在创建函数索引之前需要考虑的一些问题。 函数索引的优势 索引按照某种顺序保存列值。函数索引对列中的数据进行转换并按照顺序保存转换后的值。 假设某个表中保存了一个企业的员工名称,并且需要保留名称的大小写形式。那么,如果查询需要执行大小写不敏感的搜索(如下所示),则必须转换数据: SELECT * FROM t1 WHERE toUpper(name) LIKE 'ANTHONY % HOPKINS'; 一、安装前的准备: 以root用户身份登录系统后, 1、配置IP地址和Hostname。 2、建立空间大于150MB的Informix文件系统: # smit crjfs Mount Point:/informix 3、建立Informix组。 4、建立Informix用户: primary group:informix group set:informix,system HOME directory:/informix 5、将异步IO激活: # mkdev –l aio # smit aio使异步IO在系统启动时自动available。 6、插入Informix按照媒体,键入: # mount /Informix # cd /informix # tar –xvf /dev/rmt0 或 # cpio –icvBmud < /dev/cd0 7、更改环境变量: # export INformIXDIR=/informix 8、创建LV(放置rootdbs): # smit lv Lvname:worklv Devicename:rworklv Size:80MB(最大2GB) Type:raw Mirror Write Consistency:no Enable BAD BLOCK relocation:no 通常不建议将数据库的日志放在rootdbs上,而应单独建立一个raw类型的LV,存放logdbs。用户的数据(如索引、表等)需存放在其他的raw类型的LV上。 9、更改LV的权限和属主: # chown informix:informix rworklv # chown informix:informix worklv #chmod 660 rworklv #chmod 660 worlv 10、更改Informix的环境变量: # vi $HOME/.profile export INformIXDIR=/informix export TERMCAP=/informix/etc/termcap export INformIXSERVER=ssc export ONCONFIG=onconfig.ssc# informix启动时的配置文件 export TERM=vt100 11、分配Informix的端口号: # vi /etc/services 数据结构课程设计报告 课题四哈希表查找的设计 1. 任务和功能要求 设哈希表长为20,用除留余数法构造一个哈希函数,以开放定址法中的线性探测再散列法作为解决冲突的方法,编程实现哈希表查找、插入和建立算法。 2. 需求分析 用户输入20个以内的数字存储在哈希表中,并可以在表中查找关键字。3.概要设计 typedef struct { int *key; //关键字 int count; //表长 }HashTable; int creat(HashTable *T) //初始化哈希表 程序调用关系如下: 主函数模块 哈希表初始化模块查询模块 插入模块 4. 详细设计 #include #include 第六章 在INFORMIX-ESQL/C中 使用简单变量 融 本章讲解如何使用C变量来保存简单的SQL数据,即字符和数值。 使用C变量来保存复杂的SQL数据将在其它的章节里详细讨论。下面列出来的是复杂的SQL数据类型: ●VARCHAR ●DECIMAL 和MONEY ●DATETIME 和INTERVAL ●BYTE 和TEXT 融 宿主变量存放SQL数据。正因如此,必须定义兼容的类型来存放SQL数据。 当数据从内存中写到数据库中时,数据库服务器把数据从C的数据类型转换成SQL的数据类型,当把数据从数据库中读到内存中时,Informix把数据从SQL的数据类型转换成C的数据类型。由用户负责定义适当类型的宿主变量。 上图列出了SQL的数据类型和C的数据类型之间的隐含的关系。如果没有象上面这样来定义宿主变量,数据库服务器将尝试自动转换(如果转换有意义的话)。 例如,这里举出了两种这样的情形,数据库服务器试图把一种数据类型转换成另一种类型: ●在WHERE字句中,把字符字段同整数相比较,如下: where zipcode > 90000 ●在算术表达式中不同类型的值一起运算,如下: set unit_price = unit_price * ( 1 + $PercentLf ) 在这类的表达式中,所有的值在运算之前转换成decimal类型。 融 INFORMIX-SQL/C使用DECIMAL类型来进行算术表达式中的所有的运算,由结果变量的类型来决定要存储或打印的结果的格式。 表达式中所有的值,如果不是DECIMAL类型,则转换成DECIMAL 类型,而且,运算的结果是DECIMAL类型。上图中列出了这类表达式里的值在进行转换后的精度和格式。 如果表达式中的某个值是浮点decimal数,则结果是浮点decimal 数。 当结果类型导致精度丢失时,ESQSL/C返回一个错误。 哈希表设计数据结构课程设计 实习6、哈希表设计 一、需求分析 1. 问题描述 针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度均不超过R,完成相应的建表和查表顺序。 2. 基本要求 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列法处理冲突。 3. 测试数据 取读者周围较熟悉的30个人的姓名。 4. 实现提示 如果随机数自行构造,则应首先调整好随机函数,使其分布均匀。人名的长度均不超过19个字符(最长的人名如:庄双双(Zhuang Shuangshuang))。字符的取码方法可直接利用C语言中的toascii函数,并可先对过长的人名先作折叠处理。 二、概要设计 ADT Hash { 数据对象D:D是具有相同特征的数据元素的集合。各数据元素均含有类型相同,可唯一标识数据元素的关键 字。 数据关系R:数据元素同属一个集合。 InitNameTable() 操作结果:初始化姓名表。 CreateHashTable() 操作结果:建立哈希表。 DisplayNameTable() 操作结果:显示姓名表。 DisplayHashTable() 操作结果:显示哈希表。 FindName() 操作结果:查找姓名。 }ADT Hash 三、详细设计(源代码) (使用C语言) #include OTL技术应用 什么是OTL:OTL 是Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,它目前几乎支持所有的当前各种主流数据库,如 Oracle和DB2也可以由OTL间接使用ODBC的方式来进行操纵。 OTL中直接操作Oracle主要是通过Oracle提供的OCI接口进行,依赖于Oracle 客户端。 OTL使用简单,只要头文件中包含有:#include “otlv4.h” 就可,实际上整个OTL就一个“.H”的文件,使用起来极为的方便。 优点(1).跨平台 (2).运行效率高,与C语言直接调用数据库API相当 (3).开发效率高,使用方便,繁在其内,简在其外,比 https://www.doczj.com/doc/f612019839.html,使用起来更简单,更简洁 (4).部署容易,不需要ADO组件,不需要.net framework 等 缺点(1).只能在C++中使用 OTL的主要类 主要类包括:otl_stream、otl_connect、otl_exception ?otl_stream类 otl_stream类是OTL“流”的概念的具体表现形式,任何通过输入/输出参数使用SQL语句、PL/SQL 块或者是存储过程调用,在C++的编程中都能通过 otl_stream类来实现。 其构造函数为: (1)for Oracle 7/8/9/10: otl_stream(const int arr_size, // 流的缓存大小 const char* sqlstm, // SQL语句或PL/SQL块或存储过程 otl_connect& db, // OTL数据库连接对象 const char* ref_cur_placeholder=0, // 游标引用占位符名称 const char* sqlstm_label=0 // SQL 语句标签); [转] 理解ontape 配置、命令和语法 本节将介绍ontape 实用程序。 配置ontape 实用程序 ontape 实用程序使用ONCONFIG 文件中的6 个参数创建存储空间和逻辑日志备份。表11 给出了 ontape 使用的配置参数。 表11. Ontape 备份和还原配置参数 参数说明 TAPEDEV 指定用于备份和还原存储空间的磁带设备、目录或文件名。要配置ontape 来使用标准I/O,可将TAPEDEV 置为STDIO。 TAPEBLK 指定用于存储空间备份期间的写入操作的设备的块大小。块大小在备份和还原期间必须保持相同。 TAPESIZE 指定用于备份和还原的设备的最大大小。将它设置为0 会使用全部磁带容量。对于远程设备,不能将磁带大设置为0。 LTAPEDEV 指定用于逻辑日志备份和还原的磁带设备、目录或文件名。 LTAPEBLK 指定用于逻辑日志备份和还原期间的写入操作的设备的块大小。块大小在备份和还原期间必须保持相同。 LTAPESIZE 指定用于备份和还原的设备的最大大小。将它设置为0 会使用全部磁带容量。对于远程设备,不能将磁带大设置为0。 如果TAPEDEV 指向某个磁带设备,它将在每个命令完成后自动倒回。在从磁带读取或向其写入数据之 前,数据库服务器会执行一系列需要倒回的检查。如果将TAPEDEV 或LTAPEDEV 设置为一个文件, 该文件会被后续备份覆盖,但在这样做之前会提醒您。 将TAPEDEV 或LTAPEDEV 设置为一个目录,确保每个物理或逻辑日志备份都写入到了新文件中。 如果在Windows 上将LTAPEDEV 设置为/dev/null 或在Windows 上设置为NUL,则会关闭逻辑日志 备份。逻辑日志会自动标记为已保存,以便可以覆盖它们。如果未保存日志,则无法执行逻辑还原。 回页首 使用ontape 备份存储空间和文件 本节将介绍如何使用ontape 备份存储空间和逻辑日志文件。 存储空间备份 ontape 实用程序支持存储空间的0、1 和2 级备份。它按照以下顺序备份存储空间:根存储空间、物理 和逻辑日志存储空间、blobspace、智能blobspace 以及其他存储空间。 在开始使用ontape 创建备份之前,请确保TAPEDEV 参数所指定的位置支持写入。表12 给出了使用 ontape 备份存储空间的命令示例。 INFORMIX数据库的常用管理命令 约定 ?命令行中,<>括起来的内容不是实际要键入的内容,而是要键入的内容的说明。 ?命令行中,[]括起来的内容表示是可选项。 ?命令行中,a | b表示a或b选其中之一,为消除二义性,有时也用{a | b }表示。 ?命令行尾的\表示由于排版的限制一行写不下换到下一行,实际输入时可以不换行。 ?/* */括起来的斜体字表示注释。 1.简介 INFORMIX-OnLine Dynamic Server(以下简称OnLine)提供了一个字符窗口界面的集成管理工具onmonitor,通过它可以完成除了数据备份外的大部分常用管理任务。 同时,OnLine还提供了一整套命令行管理工具,常用的有以下这些: 命令功能 oninit 启动OnLine onmode 改变模式和共享内存 onstat 通过共享内存结构监视OnLine的操作状态 oncheck 检查、修复、显示OnLine的磁盘结构 ondblog 改变database的log方式 onparams 修改逻辑和物理日志的配置参数 onspaces 修改blobspace和dbspace的配置 ontape 数据库备份和恢复工具 onarchive 比ontape功能更强的备份和恢复工具 dbexport 将整个database备份成文本文件格式 dbimport 用文本文件格式的database备份重建database dbschema 显示数据库、表的结构 dbaccess 字符窗口界面的交互式SQL命令执行环境 严格来说,最后四个命令不属于管理工具,但是因为在进行数据库管理时经常用到,所以也在此列出。 一些Informix SQL函数的用法 一、内部函数 1、内部合计函数 1)COUNT(*)返回行数 2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数 3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和; 4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和 5)A VG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值 6)A VG(DISTINCT COLNAME)返回指定列中唯一值的平均值 7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值 8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值 2、日期与时间函数 1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号2)MONTH(DATE/DATETIME EXPRESSION)返回指定表达式中的月份 3)YEAR(DA TE/DATETIME EXPRESSION)返回指定表达式中的年份 4)WEEKDAY(DA TE/DA TETIME EXPRESSION)返回指定表达式中的当周星期几 5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值 6)TODAY返回当前日期的日期值 7)CURRENT[first to last]返回当前日期的日期时间值 8)COLNAME/EXPRESSION UNITS PRECISION返回指定精度的指定单位数 9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值 10)DATETIME(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值 11)INTERV AL(DA TE/DA TETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值 12)EXTEND(DATE/DATETIME EXPRESSION,[first to last])返回经过调整的日期或日期时间值 例子1、和UNITS合用,指定日期或时间单位(year,month,day,hour,minute,second,fraction): let tmp_date = TODAY+ 3 UNITS day 例子2、let tmp_date = MDY(10,30,2002)-- 2002-10-30 例子3、let tmp_date = today + interval(7) day to day--当前时间加上7天; 注:该功能与1相似; 例子4、EXTEND转换日期或日期时间值 let tmp_inthour = EXTEND(datetime1,hour to hour)错误代码中文解释转3
Informix数据库常用操作命令
哈希表设计-数据结构课程设计
AIX系统维护命令大全
在Informix+Dynamic+Server+中创建并使用函数索引
informix安装
数据结构课程设计哈希表
6.在INFORMIX-ESQL/C中使用简单变量
哈希表设计数据结构课程设计
otl数据库
理解-ontape-配置、命令和语法
informix数据库的操作和维护
一些Informix+SQL函数的用法及日期操作