`
axengine
  • 浏览: 145690 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ESQL使用方法

SQL 
阅读更多

宿主变量定义:

EXEC SQL BEGIN DECLARE SECTION;
long    ncards=0;
char    sTRDT[TRDT_LEN+1];
EXEC SQL END DECLARE SECTION;

Selcet、临时表、宿主变量的引用(:):

EXEC SQL SELECT eviaa.sbno,eviaa.scdt,eviaa.skst,eviaa.acbl,eviaa.trdt,eviaa.stcd,eviaa.acno,gdsba.sbnm,gdsba.sbno FROM gdsba,eviaa
WHERE gdsba.sbno = eviaa.sbno
AND eviaa.sbno = :sbnoarray[i]
ORDER BY scdt INTO TEMP tmp_gdsba;

 

索引的创建(Based on 字段):

EXEC SQL create index tmp_gdsba_idx1 on tmp_gdsba(scdt);
 

创建原则:

1.经常作为where条件的字段要创建索引。

2.重复值比较多的字段,创建索引的作用不大。 例如,对于记录状态jiluzt这样的字段,它只有十多个有效的值,对应几十万的记录,在索引中有没有这个字段,意义不是很大。

3.要把重复值少的字段放在复合索引前面。对于sql语句,如果前面的条件就可以确定一条记录的话,就不必去比较后面的字段了。比如:表akhzh 创建索引的时候,如果需要创建一个khzhlx和kehuzh的索引,就需要把kehuzh放在前面。这样才可以准确、快速的定位到要查找的记录。

4.索引最好不要创建太多,一般一个表不要超过8个。能合并的索引应该合并。索引其实是牺牲insert,delete的效率来提高select的效率,如果索引过多,表的insert和update是的速度将很慢。

5.索引的合并。不必要的、重复的索引应该删除,可以减少数据库占用的空间,提高数据库insert,update的效率。如果两个或者几个索引的前几个字段相同,并且除去相同的字段,后面的字段的重复值又很多,那么这几个索引就可以合并成字段少的那个索引。

游标

EXEC SQL select sATNU,sFOSQ,sTRDT,sSBNO,sSTCD from trlga
		where stIn.sATNU=sATNU 
		and stIn.sTRDT=sTRDT 
		order by sTRDT info tmp_trlga_7627
		;	
	if (SQLCODE != 0 && SQLCODE != SQLNOTFOUND) 
	{
		BtTrace(__FILE__,__LINE__,"select trgla err, SQLCODE[%d]",SQLCODE);
		return FAIL;
	}
	EXEC SQL DECLARE trlga_cur CURSOR FOR
		select sATNU,sFOSQ,sTRDT,sSBNO,sSTCD from tmp_trlga7627
		;
	if (SQLCODE != 0) 
	{
		BtTrace(__FILE__,__LINE__,"delcare cursor trgla_cur err, SQLCODE[%d]",SQLCODE);
		return FAIL;
	}
	EXEC SQL	OPEN eviaa_cur;
	if (SQLCODE != 0)
	{
		BtTrace(__FILE__,__LINE__,"open cursor trgla_cur err, SQLCODE[%d]",SQLCODE);
		return FAIL;
	}
	EXEC SQL FETCH trgla_cur into :sATNU,:sFOSQ, :sTRDT, :sSBNO, :sSTCD;
	if(SQLCODE != SQLNOTFOUND && SQLCODE != 0)
	{
		BtTrace(__FILE__,__LINE__,"Fail to fetch cur trgla_cur, SQLCODE[%d]\n",SQLCODE);
		EXEC SQL close trgla_cur;
		EXEC SQL free trgla_cur;
		return FAIL;
	}
	if(SQLCODE == SQLNOTFOUND)
		break;
	EXEC SQL close eviaa_cur;
	if(SQLCODE)
	{
		BtTrace(__FILE__,__LINE__,"close eviaa_cur err (%d)\n",SQLCODE);
		return FAIL;
	}
	EXEC SQL free eviaa_cur;
	if(SQLCODE)
	{
		BtTrace(__FILE__,__LINE__,"free eviaa_cur err (%d)\n",SQLCODE);
		return FAIL;
	}
 
分享到:
评论

相关推荐

    ESQL 编程(使用方法)

    本文将深入探讨ESQL的使用方法,包括游标和动态游标的使用,以及相关概念的解析。 **1. ESQL基本概念** ESQL允许程序员在C、C++、Java等高级编程语言中嵌入SQL语句,以实现数据查询、更新、删除和插入等操作。通过...

    ibm wmb esql ESQL资料

    - **调试和日志记录**:使用WMB工具进行ESQL代码的调试方法,以及日志记录以帮助故障排查。 - **集成和自定义**:ESQL与其他编程语言或WMB组件的集成方式,以及自定义扩展的可能性。 通过这些学习资料,学习者...

    informix esql-c

    4. **可移植性**:虽然最初是为Informix数据库设计的,但ESQL-C的原理和方法论可以应用于其他支持SQL的数据库系统,提高代码的可移植性。 ### 四、Informix ESQL-C的应用场景 Informix ESQL-C特别适用于那些需要高...

    ESQL编程

    ### ESQL编程知识点详解 #### 一、简介 在IT领域中,数据库是现代软件...掌握ESQL及其相关库的使用方法,对于提升C语言开发者的技能具有重要意义。希望本文能够帮助读者更好地理解和运用ESQL进行Sybase数据库编程。

    Informix ESQL C Program

    为了帮助读者更好地理解 ESQL/C 的使用方法,手册提供了几个示例数据库。这些数据库用于演示不同的功能和技术点,从而让读者能够在实际操作中学习和掌握 ESQL/C。 #### 新特性介绍 版本 9.21 中包含了若干新特性,...

    INFORMIX-ESQL/C Programmer's Manual

    - **关于本手册**:介绍了手册的目的、结构和使用方法。 - **用户类型**:描述了不同类型的用户,以及他们如何从手册中受益。 - **软件依赖**:详细说明了使用INFORMIX-ESQL/C所需的其他软件和组件。 - **环境...

    messagebroker_ESQL

    - **ESQL 变量和字段引用**:深入讲解了变量的声明和使用方法,以及如何通过字段引用访问消息内容。 - **ESQL 运算符和语句**:提供了详细的列表,解释了每个运算符和语句的功能。 - **ESQL 函数**:按功能分类整理...

    ESQL/C 编程基础

    本文将详细介绍ESQL/C的基本编程概念,包括宿主变量、头文件、声明和编译方法,以及C语言如何嵌入SQL和游标的使用。 **1. 概述** 1.1. **SQL语句嵌入方法** ESQL/C 允许开发者在C代码中直接编写SQL语句,这样可以...

    Esql操作模块.rar

    Esql,全称为Enterprise SQL,是一种在企业级应用中广泛使用的数据库查询和编程语言,它扩展了标准SQL,增加了更多的功能和灵活性,以满足复杂的业务逻辑需求。在本压缩包"**Esql操作模块.rar**"中,我们可以看到...

    19.在ESQL/C程序中使用BYTE和TEXT数据类型.doc

    - 掌握如何使用这些结构来操作BLOB数据,而不采用传统的方法。 #### BYTE和TEXT数据类型简介 在Informix数据库中,`BYTE`和`TEXT`都是用来存储大型二进制或文本数据的数据类型。`BYTE`类型主要用于存储二进制数据,...

    易语言ESQL(ADO)源码,易语言ESQL远程服务

    4. **NYR和SFM**:NYR可能是开发者自定义的缩写,可能代表某种特定的技术或算法,而SFM可能是指“字符串格式化方法”(String Formatting Method),用于格式化输出信息,如日志记录或错误消息。 5. **MD5加密**:...

    18.在ESQL/C程序中使用插入游标.doc

    在ESQL/C编程环境下,使用插入游标(Insert Cursor)是一种有效的方法,它允许程序员一次性批量插入多条记录,从而提高数据处理效率。本文档将详细介绍如何在INFORMIX-ESQL/C程序中定义和使用插入游标。 #### 二、...

    在ESQL/C程序中使用BYTE和TEXT数据类型.pdf

    在ESQL/C编程环境中,处理大数据对象(BLOBs)如图像、音频或大型文本文件时,常常需要使用BYTE和TEXT数据类型。这些数据类型用于存储不可直接在SQL语句中表示的大型二进制或文本数据。本章将深入探讨如何在ESQL/C...

    21.在ESQL/C中有效使用滚动游标.doc

    ### 在ESQL/C中有效使用滚动游标 #### 知识点概述 本文档主要讲述了在ESQL/C中如何高效地使用滚动游标,并通过具体的示例...通过以上方法,可以在ESQL/C中更有效地使用滚动游标,从而提高应用程序的性能和用户体验。

    13.ESQL/C中使用VARCHAR数据类型.doc

    本章节将详细介绍 `VARCHAR` 的基本概念、使用方法以及与 `STRING` 类型的区别,并通过实例讲解如何在实际应用中合理利用 `VARCHAR`。 #### VARCHAR 数据类型简介 `VARCHAR`(Variable Character)是一种变长字符...

    15.ESQL/C程序中使用滚动游标.doc

    ### ESQL/C程序中使用滚动游标 #### 知识点概述 在本文档中,我们将探讨如何在ESQL/C程序中使用滚动...掌握了本文介绍的关键SQL语句及其使用方法后,开发者便能有效地利用滚动游标来增强其应用程序的功能性和效率。

    ESQL/C的数据类型

    在ESQL/C中,数据类型是编程的基础,它定义了变量可以存储的值的种类和范围。本篇文章将深入探讨ESQL/C中的数据类型及其转换,包括简单的...理解和熟练使用这些数据类型和转换方法是编写高效、准确的ESQL/C代码的关键。

Global site tag (gtag.js) - Google Analytics