ESQLC数据类型 - char和fixchar类型

GBase8s ESQL/C字符串数据类型

GBase8s ESQL/C支持5种字符串数据类型, 如果在数据库的列中使用字符串类型,例如CHAR或者VARCHAR, 以下ESQL/C字符串类型可以使用:

  1. C语言的char类型
  2. GBase8s ESQL/C预定义类型, fixchar, string, varchar
  3. lvarchar数据类型

具体使用那种数据类型,参考以下条件:

  1. 是否希望ESQL/C使用空字符来作为字符串的结束符。
  2. 是否希望使用空白字符填充。

ESQL/C 字符串类型

ESQL/C 字符串类型

Null结尾

包含空白字符

char

Y

Y

fixchar

Y

string

Y

只有在列中包含空白字符时,才会包含空白字符, 不会自动添加空白字符。

varchar

Y

Y

lvarchar

Y

char数据类型

当应用程序从数据库的CHAR类型的列中,读取数据,保存到char类型的变量中,ESQL/C会添加空白字符在字符串的末尾,将最后一位留给终止字符null。

生成char数组时, 其长度应设定为n+1, n为数据库中列的长度, 1为null终止字符。

fixchar数据类型

fixchar为ESQL/C预定义的变量类型。

当应用程序从数据库的CHAR类型的列中,读取数据,保存到fixchar类型的变量中,ESQL/C会添加空白字符在字符串的末尾,不会添加null终止字符。

限制:不要使用fixchar类型来处理VARCHAR或者NVARCHAR的数据,如果使用fixchar,即使VARCHAR或NVARCHAR的数据长度小于fixchar的长度, 数据库服务器会将fixchar数据剩余的空间全部填充为空白字符, 导致空间浪费。

声明fixchar数据类型时,使用如下格式:

EXEC SQL BEGIN DECLARE SECTION;

  fixchar fch_name[n];

EXEC SQL END DECLARE SECTION;

其中n就是数据库的CHAR类型列的长度。

注意:

如果将以null终止符结尾的字符串拷贝到fixchar类型中,null终止符将会保存到数据库的列中,导致该数据无法查询出来。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这是我自己学习ESQLC的资料,里面有我划的重点。希望对大家有用。 ESQL/C资料(完全版) 1 1.1 第一节 什么是嵌入SQL语言? 3 1.1.1 嵌入SQL程序的组成元素 3 1.1.2 什么是静态SQL和动态SQL? 5 1.1.3 什么是SQLCA? 5 1.1.4 什么是SQLDA? 5 1.2 第二节 SYBASE SQL Server嵌入式SQL语言 5 1.2.1 一个嵌入SQL语言的简单例子 5 1.2.2 嵌入SQL的处理过程 7 1.2.3 嵌入SQL语句总览 7 1.2.3.1 宿主变量 8 1.2.3.2 连接数据库 13 1.2.3.3 数据的查询和修改 14 1.2.3.4 游标的使用 15 1.2.3.5 SQLCA 17 1.2.3.6 WHENEVER 18 1.2.3.7 批处理 19 1.2.3.8 事务 20 1.2.4 动态SQL语句 20 1.2.4.1 动态修改 21 1.2.4.2 动态游标 22 1.2.4.3 SQLDA 26 1.2.4.4 DESCRIBE语句 30 1.2.5 两个例子程序 30 1.2.5.1 TELECOM程序 30 1.2.5.2 ADHOC程序 33 1.3 第三节 IBM DB2嵌入SQL语言 42 1.3.1 一个简单示例 42 1.3.2 嵌入SQL语句 45 1.3.2.1 宿主变量 45 1.3.2.2 单行查询 47 1.3.2.3 多行查询 47 1.3.2.4 插入、删除和修改操作 49 1.3.2.5 SQLCA 54 1.3.2.6 事务 56 1.3.3 DB2的嵌入SQL程序处理过程 57 1.3.4 DB2的动态SQL嵌入语句 62 1.3.4.1 基本方法 62 1.3.4.2 动态游标 66 1.3.4.3 SQLDA 66 1.4 第四节 ORACLE数据库的嵌入SQL语言 82 1.4.1 基本的SQL语句 82 1.4.1.1 宿主变量和指示符 82 1.4.1.2 查询 83 1.4.1.3 修改数据 83 1.4.1.4 游标 84 1.4.2 嵌入PL/SQL 87 1.4.3 动态SQL语句 88 1.4.3.1 ORACLE动态SQL语句的一些特点 88 1.4.3.2 使用动态SQL的四种方法 88 1.4.3.3 SQLDA 91 1.5 第五节INFORMIX的嵌入SQL/C语言 107 1.5.1 一个简单的入门例子 107 1.5.2 宿主变量 109 1.5.3 嵌入SQL的处理过程 114 1.5.4 动态SQL语言 115 1.5.4.1 SQLDA 116 1.6 第六节Microsoft SQL Server7嵌入式SQL语言 127 1.6.1 一个嵌入SQL语言的简单例子 127 1.6.2 嵌入SQL的处理过程 128 1.6.3 嵌入SQL语句 132 1.6.4 动态SQL语句 140 1.6.5 API 151 二、 ESQL编程使用说明 152 2.1 第一章 ESQL介绍 152 2.1.1 ESQL中的基本概念 153 2.1.2 ESQL程序的组成和运行 153 2.2 第二章 ESQL 程序的基本结构 154 2.2.1 程序首部 154 2.2.2 程序体 155 2.3 第三章 查 询 159 2.3.1 SELECT 语句 159 2.3.2 游标的使用 161 2.3.3 定位修改和删除语句 163 2.4 第四章 提交/回滚事务 166 2.4.1 逻辑工作单元 166 2.4.2 COMMIT 语句 167 2.4.3 ROLLBACK语 句 167 2.4.4 DISCONNECT 语句 167 2.5 第五章 错误检测和恢复 167 2.5.1 USERCA的结构 168 2.6 第六章 使用说明书 169 2.6.1 启动Cobase: 169 2.6.2 退出Cobase: 169 2.6.3 交互式SQL(Interactive SQL)访问 170 2.6.4 嵌入式SQL(Enbeded SQL)编程方式 170 2.6.5 补充说明 171
一、 ESQL/C资料(完全版)一 第一节 什么是嵌入SQL语言?3 1.1 嵌入SQL程序的组成元素3 1.2 什么是静态SQL和动态SQL?4 1.3 什么是SQLCA?4 1.4 什么是SQLDA?5 第二节 SYBASE SQL SERVER嵌入式SQL语言5 2.1 一个嵌入SQL语言的简单例子5 2.2 嵌入SQL的处理过程6 2.3 嵌入SQL语句总览7 2.3.1 宿主变量7 2.3.2 连接数据库12 2.3.3 数据的查询和修改13 2.3.4 游标的使用13 2.3.5 SQLCA15 2.3.6 WHENEVER16 2.3.7 批处理18 2.3.8 事务18 2.4动态SQL语句18 2.4 .1 动态修改19 2.4.2 动态游标20 2.4.3 SQLDA23 2.4.4 DESCRIBE语句27 2.5 两个例子程序27 2.5.1 TELECOM程序27 2.5.2 ADHOC程序29 第三节 IBM DB2嵌入SQL语言35 3.1 一个简单示例35 3.2 嵌入SQL语句37 3.2.1宿主变量37 3.2.2单行查询39 3.2.3多行查询39 3.2.4插入、删除和修改操作40 3.2.5 SQLCA43 3.2.6事务45 3.3 DB2的嵌入SQL程序处理过程46 3.4 DB2的动态SQL嵌入语句53 3.4.1 基本方法53 3.4.2 动态游标55 3.4.3 SQLDA55 第四节 ORACLE数据库的嵌入SQL语言66 4.1 基本的SQL语句66 4.1.1宿主变量和指示符66 4.1.2 查询68 4.1.3 修改数据68 4.1.4 游标68 4.2 嵌入PL/SQL71 4.3 动态SQL语句72 4.3.1 ORACLE动态SQL语句的一些特点72 4.3.2 使用动态SQL的四种方法72 4.3.3 SQLDA75 第五节INFORMIX的嵌入SQL/C语言89 5.1 一个简单的入门例子89 5.2 宿主变量91 5.3 嵌入SQL的处理过程96 5.4 动态SQL语言96 5.4.1 SQLDA97 第六节MICROSOFT SQL SERVER7嵌入式SQL语言105 6.1 一个嵌入SQL语言的简单例子105 6.2 嵌入SQL的处理过程106 6.3 嵌入SQL语句112 6.3.1 声明嵌入SQL语句中使用的C变量112 6.3.2 连接数据库115 6.3.3 数据的查询和修改115 6.3.4 游标的使用116 6.3.5 SQLCA117 6.3.6 WHENEVER118 6.4动态SQL语句119 6.4 .1 动态修改119 6.4.2 动态游标120 6.4.3 SQLDA122 6.4.4 DESCRIBE语句130 6.5 API130 第六章 嵌入式SQL(E-SQL)简介

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八珍豆腐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值