基于c语言的db2数据库开发,db2开发嵌入c语言总览

本文详细介绍了IBM DB2的嵌入式C语言开发,包括静态和动态SQL语句的使用,语句终结符,权限问题,以及何时选择动态或静态语句的策略。动态语句适用于不包含宿主变量的情况,而静态语句适用于包含宿主变量的场景。还提到了DB2上下文API和宿主变量的自动生成器,以及如何管理用户和组权限。
摘要由CSDN通过智能技术生成

27a9911250206635e525e094abc3cb02.gif

作者mydisc12014-07-18 15:44系统运维工程师, IBM

db2开发嵌入c语言总览

字数 2287阅读 664评论 0赞 0

db2开发总览:

1:嵌入c语言开发的语法要求

Correct C and C++ Element Syntax

Statement initializer

EXEC SQL

Statement string

Any valid SQL statement

Statement terminator

Semicolon (;)

2静态语句

EXEC SQL SELECT col INTO :hostvar FROM table;

3动态语句

strcpy(stmt1, "CREATE TABLE table1(col1 INTEGER)");

EXEC SQL EXECUTE IMMEDIATE :stmt1;

4:换行符号:

EXEC SQL SELECT "NA

ME" INTO :n FROM staff WHERE name=’Sa

nders’;

5:静态语句和动态语句都分为两类:

静态语句:1不包含宿主变量的,如select * from test1.主要用于初始化。

2包含宿主变量的

动态语句:1不包含参数标记的。一般都是命令行输入的

2包含参数标记的。这可以带来很大的灵活性

6权限问题:1:用户权限

2:组权限:组权限是用来执行动态语句用的,而不是静态语句。PUBLIC权限是用来执行静态语句的。

7:动态语句的执行

EXCUTE IMMEDIATE

适用于不包含任何宿主变量的语句,这样可以替代PREPARE及EXECUTE。

举例:

strcpy (qstring,"INSERT INTO WORK_TABLE SELECT *

FROM EMP_ACT WHERE ACTNO >= 100");

EXEC SQL EXECUTE IMMEDIATE :qstring;

8:用动态语句还是用静态语句

1):数据均匀分布-->静态语句,反之动态语句

2):操作数据的范围,少-->静态语句,反之动态语句

3):sql语句的重复次数,少--》静态语句,反之动态语句

4)查询的动态情况--->查询固定的->静态语句,反之动态语句

5)语句的类型--->影响到package的->动态,反之静态

6)runstats执行的频率--》执行高,动态,反之静态

9,语句建议

静态语句有宿主变量,动态语句不带参数标记

10:Trigraph

Definition

??( Left bracket '['

??) Right bracket ']'

??< Left brace '{'

??> Right brace '}'

??= Hash mark '#'

??/ Back slash ''

??' Caret '^'

??! Vertical Bar '|'

??– Tilde '~'

11:db2 context API

sqleAttachToCtx - Attach to context

sqleBeginCtx - Create and attach to an application context

sqleDetachFromCtx - Detach from context

sqleEndCtx - Detach and destory application context

sqleGetCurrentCtx - Get current context

sqleInterruptCtx - Interrupt context

Even if the new APIs are used, the following APIs continue to be serialized:

v sqlabndx - Bind

v sqlaprep - Precompile Program

v sqluexpr - Export

v db2Import and sqluimpr - Import

12:创建宿主变量的自动生成器db2dclgn

db2dclgn -d sample -t staff -l C

he resulting staff.h file contains:

struct

{

short id;

struct

{

short length;

char data[9];

} name;

short dept;

char job[6];

short years;

double salary;

double comm;

} staff;

13:

12:db2 context

A DB2 embedded SQL application can execute SQL statements from multiple

threads using contexts. A context is the environment from which an application

runs all SQL statements and API calls

著作权归作者所有

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!赞0

分享

添加新评论0 条评论

Ctrl+Enter 发表

匿名评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值