使用odbc连接oracle,sqlserver和access

#include <afx.h>
#include <afxdb.h> //封装了odbc api

#define _ORACLE

int main(int argc, char* argv[])
{
    CDatabase db;
    CString strConnect;
#ifdef _ORACLE
    strConnect = "Driver={Microsoft ODBC for Oracle};Server=myserver;Uid=myuser;Pwd=mypwd;"; 
#elif _SQLSERVER
    strConnect = "Driver={SQL Server};Server=192.168.0.100;Address=192.168.0.100,2966;Network=dbmssocn;Database=mydb;Uid=myuser;Pwd=mypwd;"; //dbmssocn Win32 Winsock TCP/IP,2966是数据库开放的端口,192.168.0.100为数据库所在机器IP,如为本机可用回环地址127.0.0.1替代。
#else
    strConnect = "Driver={Microsoft Access Driver (*.mdb)};Dbq=d:\\mydb.mdb;Uid=;Pwd=mypwd;";
#endif

    try
    {
        if (db.OpenEx(strConnect))
        {
            CRecordset rs(&db);

            rs.Open(CRecordset::dynaset,"SELECT username,password FROM tblogin");

            CString strUserName,strPassword;
            while (!rs.IsEOF())
            {
                //也可以通过字段名来获取,注意odbc对字段名大小写敏感
                rs.GetFieldValue((short)0,strUserName);
                rs.GetFieldValue(1,strPassword);
                std::cout<<strUserName.Trim()<<":"<<strPassword.Trim()<<std::endl;
                rs.MoveNext();
            }

            rs.Close();
            db.Close();
        }
    }
    catch(CDBException *e)
    {
        char szErrMsg[1024];
        e->GetErrorMessage(szErrMsg,1024);
        AfxMessageBox(szErrMsg);
    }
    catch(...)
    {
    }
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值