OTL4.0 otl_stream 绑定问题

Posted

技术标签:

【中文标题】OTL4.0 otl_stream 绑定问题【英文标题】:OTL4.0 otl_stream bind issues 【发布时间】:2015-10-19 15:04:00 【问题描述】:

我有一个关于使用 otl_stream 绑定变量的问题。 无论我如何绑定,使用索引或命名顺序/命名都不会影响正在更新的列。它似乎总是连续的。

您可以看到otl_stream 中的列名已被切换。然而 postgres 数据库显示两个插入产生相同的结果。

    操作系统:Windows OTL:4.0 Visual Studio 2013。 平台:x64 ODBC:PostgreSQL ANSI(x64) 9.03.04.00

有什么想法吗? 亲切的问候 Auke-Dirk

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;

// #define OTL_ODBC_UNIX // uncomment this line if UnixODBC is used
#define OTL_ODBC_ALTERNATE_RPC
#if !defined(_WIN32) && !defined(_WIN64)
#define OTL_ODBC
#else 
#define OTL_ODBC_POSTGRESQL // required with PG ODBC on Windows
#endif

#include "otlv4_h2\otlv4.h"

int _tmain(int argc, _TCHAR* argv[])

    otl_connect db;

    otl_connect::otl_initialize(); // initialize ODBC environment
    try

        db.rlogon("Driver=PostgreSQL ANSI;Server=localhost;Database=Horus;UID=postgres;PWD=12odsc7a");

        otl_cursor::direct_exec
            (
            db,
            "drop table test_tab",
            otl_exception::disabled // disable OTL exceptions
            ); // drop table

        db.commit();

        otl_cursor::direct_exec
            (
            db,
            "create table test_tab(f1 int, f2 int)"
            );  // create table

        db.commit();

        otl_stream ostr1(1, // no buffers
            "insert into test_tab values(:f1<int>,:f2<int>)",
            db
            );
        ostr1 << 1 << 2;
        db.commit();

        otl_stream ostr2(1, // no buffers
            "insert into test_tab values(:f2<int>,:f1<int>)",
            db
            );
        ostr2 << 1 << 2;
        db.commit();
    
    catch (otl_exception& p) // intercept OTL exceptions
        cerr << p.msg << endl; // print out error message
        cerr << p.stm_text << endl; // print out SQL that caused the error
        cerr << p.sqlstate << endl; // print out SQLSTATE message
        cerr << p.var_info << endl; // print out the variable that caused the error
    

    db.logoff(); // disconnect from ODBC

    return 0;

【问题讨论】:

【参考方案1】:

我无法解决这个问题,因此转向社会。

问候

【讨论】:

以上是关于OTL4.0 otl_stream 绑定问题的主要内容,如果未能解决你的问题,请参考以下文章

OTL翻译 -- otl_stream流相关绑定变量

OTL翻译 -- otl_stream类

OTL翻译 -- otl_long_string/otl_long_unicode_string类

otl翻译(11) -- OTL的迭代器

OTL翻译 -- OTL的主要类

解决jquery绑定事件重复绑定问题