原文地址:http://blog.sina.com.cn/s/blog_79d599dc0100ro3r.html
常量的SQL语句
一个没有绑定变量的SQL语句、SQL语句块或是存储过程就被称为常量的SQL语句。OTL通过一个静态的函数来执行这样的SQL语句。
例如:
// static otl_cursor::direct_exec()
otl_cursor::direct_exec
(db, // connect object
"create table test_tab(f1 int, f2 varchar(30))"
); // create table
otl_cursor::direct_exec
(db, // connect object
"drop table test_tab", // SQL statement or PL/SQL block
otl_exception::disabled // disable OTL exceptions,
// in other words, ignore any
// database error
); // drop table
// or otl_connect::direct_exec()
db.direct_exec // connect object
("create table test_tab(f1 int, f2 varchar(30))"
); // create table
db.direct_exec // connect object
("drop table test_tab", // SQL statement or PL/SQL block
otl_exception::disabled // disable OTL exceptions,
// in other words, ignore any
// database error
); // drop table
// or otl_connect::operator<<(const char*)
db<<"create table test_tab(f1 number, f2 varchar2(30))";
try{
db<<"drop table test_tab""; // SQL statement or PL/SQL block
}catch(otl_exception&){
// ignore a database error
}
otl_cursor是OTL的一个内部类。它是对direct_exec()函数的一个底层类。因为以后版本该类可能不再对外提供,所以不建议使用。
下面这个例子为direct_exe()返回结果值的例子:
// static otl_cursor::direct_exec
long rpc=otl_cursor::direct_exec
(db, // connect object
"delete from test_tab where f1>=95"
);
cout<<"Rows deleted: "<<rpc<<endl;
// or otl_connect:direct_exec
long rpc=db.direct_exec // connect object
("delete from test_tab where f1>=95"
);
cout<<"Rows deleted: "<<rpc<<endl;