Oracle pro * c预处理的.h头文件中的EXEC SQL DECLARE变量

时间:2011-06-27 14:23:38

标签: c++ oracle11g oracle-pro-c embedded-sql

我将带有嵌入式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。我如何声明主变量,以便我不必在每个方法中重复声明它们?

我不能将它们作为全局变量。

0 个答案:

没有答案