#include "datastreamer.hpp" #include using namespace std; DataStreamer::DataStreamer() : table(0), pk_field(0), data_field(0) { qry.set_lob_stream_mode(true); otl_connect::otl_initialize(); } DataStreamer::~DataStreamer() { db.logoff(); } void DataStreamer::Open(unsigned char* dsn, unsigned char* uid, unsigned char* pwd) { ostringstream d; d << "DSN=" << dsn; if (uid && pwd) d << ";UID=" << uid << ";PWD=" << pwd; db.rlogon(d.str().c_str()); } void DataStreamer::SetField(unsigned char* t, unsigned char* p, unsigned char* d) { ostringstream sql; sql << "UPDATE " << t << " SET " << d << " = :data WHERE " << p << " = :id"; qry.set_lob_stream_mode(true); qry.open(1, sql.str().c_str(), db); qry.set_commit(0); } void DataStreamer::SetValue(int id, const char* val) { if (val == NULL) return; size_t slen = strlen(val); otl_lob_stream s; otl_long_string d(slen + 1, slen); qry << s << id; for(unsigned int i=0; i < slen; ++i) d[i] = val[i]; s << d; s.close(); }