对应,同时支持移动游标、修改记录等操作。 CDBException 类提供了对数据库操作的异常处理,可以获得操作异常的相 关返回代码。 CFieldExchange 类提供了用户变量与数据库字段之间的数据交换,如果不 需要使用自定义类型,将不用直接调用该类的函数,MFC Wizard 将自动为程序 员建立链接。 两种方法的比较 两种方法的比较 综上所述,使用这两种方法在 Visual C++中都可以很方便地开发出基于 Oracle 数据库的应用程序,同时,这两种方法又各有其优缺点。ODBC 由于有 MFC 强大的类库支持而使得编程实现非常方便,同时可移植性也很强,在异构数 据库之间移植
也只需更改很少一部分程序。但是,由 ODBC 的实现机制我们可以 看到,与 PRO*C 相比,应用程序需要经过 ODBC 驱动程序管理器和 ODBC 驱动 程序两层,才能和数据库通信接口建立联系,而 PRO*C 是直接与通信接口联系, 因此建立在 ODBC 上应用程序的执行效率会相对低一些。
VC++ Oracle 开发入门 ORACLE 数据库以其优良的性能得到广泛的称赞。但是 ORACLE 客户端不像 SQL Server 能方便地连接到数据库。首先,要给客户机装一个 ORACLEL OLEDB 通讯软件,该软件可从如下地址获得: ftp://yblshenzhen.8800.org/OraOLEDB.exe oracle 只有安装了此
软件,客户机才可以和 ORACLE 服务器通讯。为什么 SQL Server 可以直接连到数据库呢,因为微软己经把“SQL Server 的通讯软件” 集成到 Windows 中了。装好通讯软件,我们要进行配置才可以正确的连接到 服务器。打开 Net Configuration Assistance,出现以下画面:
图一 在“监听程序配置”和“命名方法配置”两项保默认,在“本地
网络服务名配置”要注 意,选择本地网络服务名配置,保持默认到配置服务器这一步,如下:
图二 注意此服务器的名字为 ORACLE 数据库的 SID,我这里是 mike。再下一步 是选择协议, 一般为 TCP, 下一步是输入主机名, 为服务器的 IP 或
NETBIOS NAME。
图三
要保证能 PING 通主机名。
图四 下一步是测试,最好测试成功,如果不成功,从三个方面入手: 检查 ORACLE 服务器是否启动; ? 检查 SID 是否正确; ? 和主机之间的网络是否连通; ? 用户名和密码没错, 初始为 scott/tiger;
?
现在用 VC 新建一个基于对话框的工程。 我们用 ADO 连接数据库, stdafx.h 在 中加入: #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 在 App 的 Initialize() 函数中加入: try { m_pConnection.CreateInstance(__uuidof(Connection)); m_pConnection->Open("Provider=MSDAORA.1;Data Source=mike;","scott","tiger",adModeUnknown); } catch(_com_error e) { AfxMessageBox(e.ErrorMessage());
} m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->open(("select * from yourtables", m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOpti
mistic, adCmdText)); 其余和普通的 ADO 数据库操作一样......