Chinaunix首页 | 论坛 | 博客
  • 博客访问: 674234
  • 博文数量: 779
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5000
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 13:28
文章分类

全部博文(779)

文章存档

2011年(1)

2008年(778)

我的朋友

分类:

2008-10-27 13:38:50

C++调用TEST的代码:
#include
#include
//#define OTL_ORA9I // 使用这个宏就表示使用Oracle9i的API,而不是ODBC API
#define OTL_ODBC    // 使用这个宏就表示使用通用的ODBC API
#include "otlv4.h"
using namespace std;

void main( void )
{
    otl_connect::otl_initialize();
    try {
        otl_connect db;
        db.rlogon( "Driver={Microsoft ODBC for Oracle};Server=ZZZ;Uid=XXX;Pwd=YYY;" );
        // db.set_max_long_size(?); 如果varchar_long长度非常长,超过默认值的话,你需要这一句

        otl_stream o( 1, "{ :E = call TEST(  :A,:B,:C,:D        o.set_commit(0);

        int a = 1;
        int b = 0;
        int c = 2;
        otl_long_string d( "abc", 0, 3 );
        otl_long_string e;
        o << a << c << d;
        o >> e >> b >> c;
        
        cout << "b = " << b   << '\n';
        cout << "c = " << c   << '\n';
        cout << "e = " << e.v << '\n';

        //db.commit();
        db.logoff();
    }
    catch( otl_exception& p ) {
        cerr << p.msg << "\n"
            << p.stm_text << "\n"
            << p.sqlstate << "\n"
            << p.var_info << "\n"
            << endl;
    }
}

说明:"{ :E = call TEST(  :A,:B,:C,:D"{ call :Name1 := function( Name2 }"
也不是
"{ call :Name1 \\:= function( Name2 }"
而是
"{ :Name1 = call function( Name2 }"
这一点和otl.sourceforge.net上的说明不一样。

--------------------next---------------------

阅读(345) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~