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