ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Sybase管理与开发 » 计划发布一个访问Sybase的c++库

标题: [工具] 计划发布一个访问Sybase的c++库
离线 tyln
初级会员



精华贴数 0
个人空间 0
技术积分 17 (61931)
社区积分 0 (90877)
注册日期 2003-7-14
论坛徽章:0
      
      

发表于 2008-9-8 16:03 
计划发布一个访问Sybase的c++库

该库基于open client library开发, 其使用方法和jdbc非常相似。

例如使用Statement

try{
Context* ctx = NULL;
        ctx = Context::getContext();
        Connection* conn = ctx->getConnection("server:dbname","user","password");
        conn->open();
        Statement* stmt = conn->createStatement();                       
        ResultSet* rs = stmt->executeQurey("select address,salary,age,name,years,convert(char(8),workdate,108) as dxas from employee where years = 1000.12");
        cout << " the datata is: " << endl;
        while(rs->next()){
                cout << rs->getString(0)<<"    "<<rs->getDouble(1) <<"    "
                << rs->getInteger(2) << "    "<<rs->getString(3)<<"    "<<rs->getNumeric(4) << "    "
                <<endl;
        }
        delete conn;
        delete stmt;
        delete rs;
}catch(CTSQLException& e){
                cout << e.getMessage() << endl;
        }
        delete t;


只看该作者    顶部
离线 tyln
初级会员



精华贴数 0
个人空间 0
技术积分 17 (61931)
社区积分 0 (90877)
注册日期 2003-7-14
论坛徽章:0
      
      

发表于 2008-9-8 16:05 
不知道受不受欢迎


只看该作者    顶部
离线 jarjar
新人,请多关照



精华贴数 1
个人空间 0
技术积分 4495 (316)
社区积分 171 (2623)
注册日期 2005-6-1
论坛徽章:21
现任管理团队成员2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:现代五项生肖徽章:蛇生肖徽章:牛 
      

发表于 2008-9-8 16:16 
值得期待


__________________
if you want something done right, hire a professional
只看该作者    顶部
离线 scudscud
初级会员



来自 Sybse SH R&D Center
精华贴数 0
个人空间 120
技术积分 198 (9630)
社区积分 1 (35221)
注册日期 2003-11-17
论坛徽章:1
现任管理团队成员     
      

发表于 2008-9-9 14:33 
你发布的是一个访问Sybase database 的driver吗?


__________________
Sybase WorkSpace newsgroup
news://forums.sybase.com/sybase.public.workspace.general

Download:
http://download.sybase.com/eval/ws12amp/WorkSpace2.0.zip
只看该作者    顶部
离线 iihero
中级会员



精华贴数 0
个人空间 0
技术积分 422 (4682)
社区积分 2 (24548)
注册日期 2003-5-14
论坛徽章:0
      
      

发表于 2008-9-9 14:46 
俺曾经写过一个对ctlib的wrapper,支持ASE12.5和ASE15.x。
是hexdb wrapper的一部分。

下边是我封装后的示例代码,
void testASESelect()
{
    try
    {
        AseConnection conn("spring", "spring1", "host", 5000, "", "en_US.850", "us_english", "cp850");
        //AseConnection conn("spring", "spring1", "sean-laptop", 5000, ""); //, "en_US.850", "us_english", "cp850");
        AseStatement* stmt = conn.createStatement();
        //AseResultSet* rset = stmt->executeQuery("select id, col2 from multitype_t");
        AseResultSet* rset = stmt->executeQuery("select id, col5, col6, col2, col4, col8, col11, col7, col3, col9 from multitype_t where id=102");
        while (rset->next())
        {
            std::cout<<rset->getInt(1)<<"\t";
            //std::cout<<rset->getString(2)<<"\t";
            if (rset->isNull(2)) std::cout<<"NULL\t";
            else std::cout<<rset->getDouble(2)<<"\t";

            if (rset->isNull(3)) std::cout<<"NULL\t";
            else std::cout<<rset->getDouble(3)<<"\t";
            
            if (rset->isNull(4)) std::cout<<"NULL\t";
            else std::cout<<rset->getString(4)<<"\t"<<std::endl;
            
            if (!rset->isNull(5)) std::cout<<rset->getString(5)<<"\t";
            else std::cout<<"NULL\t";

            if (!rset->isNull(6)) std::cout<<rset->getDatetime(6)<<"\t";
            else std::cout<<"NULL\t";
            /*
            blob n;
            rset->getBlob(7, n);
            std::cout<<"n.size()="<<n.size()<<"\t\t";
            if (n.size() >=4)
            {
                std::cout<<(*(int*)(&n[0]))<<std::endl;
            }
            */
            if (! rset->isNull(8))  std::cout<<rset->getMoney(8)<<"\t";
            else std::cout<<"NULL\t";

            if (! rset->isNull(9)) std::cout<<rset->getString(9)<<"\t";
            else std::cout<<"NULL\t";

            // get the col9 binary(4)
            blob col9;
            if (! rset->isNull(10)) hexdb::Util::dumpBytes(rset->getBinary(10), std::cout);
            else std::cout<<"NULL\t";
            std::cout<<std::endl;
        }
        Metadata meta = rset->getMetadata();
        hexdb::Util::dump(meta, std::cout);

        rset->close();
        delete rset;
        delete stmt;
    }
    catch (DBException& e)
    {
        std::cout<<e.reason<<std::endl;
    }
}


__________________
==========================
Welcome to iihero lab
http://iihero.cn,  http://iihero.8800.org
(IR, hexdb, jdbf, ......, OCI, SQLite, ...)
只看该作者    顶部
离线 jarjar
新人,请多关照



精华贴数 1
个人空间 0
技术积分 4495 (316)
社区积分 171 (2623)
注册日期 2005-6-1
论坛徽章:21
现任管理团队成员2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:现代五项生肖徽章:蛇生肖徽章:牛 
      

发表于 2008-9-9 21:18 


QUOTE:
原帖由 scudscud 于 2008-9-9 14:33 发表
你发布的是一个访问Sybase database 的driver吗?

基于ct-lib的再次封装


__________________
if you want something done right, hire a professional
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问