十六.动态sql
16.1 不能是select语句
不能有占位符号
exec sql execute immediate :sqlstr;
16.2 可以有占位符
不能有select语句
"insert into test1405dsql values(
:b0)"
"insert into test1405dsql values(1)"
"insert into test1405dsql values(2)"
/* 预处理 */
exec sql prepare s from :sqlstr;
exec sql execute s using :id;
16.3 只能是 select语句
可以有占位符
char sqlstr[100]=
"select id,first_name,salary from
s_emp where id>:b0";
动态sql2 + 游标
exec sql prepare s from :sqlstr;
/* 把 s 关联到游标 */
exec sql declare empcursor cursor
for s;
/* 打开游标时传入参数 */
exec sql open empcursor using :id;
十七.和 proc++ 相关的预编译选项
oname 默认产生的是c文件
c++要求最好使用 .cpp
parse 默认是c的full方式
c++ 中 有 partia 这时严格的
c++检查 不推荐使用
c++ 中 推荐使用 none
code 默认是 c的ansi_c
c++ 中使用cpp
proc ***.pc oname=***.cpp
parse=none code=cpp
g++ ***.cpp -lclntsh
16.1 不能是select语句
不能有占位符号
exec sql execute immediate :sqlstr;
16.2 可以有占位符
不能有select语句
"insert into test1405dsql values(
:b0)"
"insert into test1405dsql values(1)"
"insert into test1405dsql values(2)"
/* 预处理 */
exec sql prepare s from :sqlstr;
exec sql execute s using :id;
16.3 只能是 select语句
可以有占位符
char sqlstr[100]=
"select id,first_name,salary from
s_emp where id>:b0";
动态sql2 + 游标
exec sql prepare s from :sqlstr;
/* 把 s 关联到游标 */
exec sql declare empcursor cursor
for s;
/* 打开游标时传入参数 */
exec sql open empcursor using :id;
十七.和 proc++ 相关的预编译选项
oname 默认产生的是c文件
c++要求最好使用 .cpp
parse 默认是c的full方式
c++ 中 有 partia 这时严格的
c++检查 不推荐使用
c++ 中 推荐使用 none
code 默认是 c的ansi_c
c++ 中使用cpp
proc ***.pc oname=***.cpp
parse=none code=cpp
g++ ***.cpp -lclntsh