作者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 发表
匿名评论