我将带有嵌入式SQL的一些C ++代码移植到带有oracle数据库的linux服务器中。
数据访问对象是提供的C ++类 。选择() 。插入() .findByPrimaryKey() 等,数据库交互的方法。
这是testdao.h头文件。
class TestDAO
{
private:
EXEC SQL BEGIN DECLARE SECTION;
int hv_col1;
int hv_col2;
.. .. upto 20 host variables ...
EXEC SQL END DECLARE SECTION;
public:
testObj* select();
bool insert(testObj);
testObj* findByPrimaryKey(primaryKeyObj);
}
这是testdao.ecpp文件
class TestDAO::select()
{
... select into hostvariables hv_col1, hv_col2 ..
... copy hostvariables data into object ...
}
class TestDAO::insert(testObj)
{
... copy data from the testObj into hostvariables ...
... EXEC SQL INSERT using hostvariales ...
}
class TestDAO::findByPrimaryKey(primaryKeyObj)
{
... copy primaryKeyObj data into hostvariables ...
... EXEC SQL SELECT where primary key ..
}
Oracle pro * C预编译器无法处理头文件中的EXEC SQL。我如何声明主变量,以便我不必在每个方法中重复声明它们?
我不能将它们作为全局变量。