c oracle ado

C、Oracle和ADO的组合将为开发人员提供一种灵活性和效率的开发方式。C是一种高级编程语言,它与许多各种平台和计算机环境兼容,而Oracle是一个强大的数据库管理系统。而使用OLE DB和ADO技术可以将这两个组件结合在一起。

例如,在编写应用程序时,可以使用C语言编写前端用户界面,同时使用ADO连接到Oracle数据库以提供必要的后端数据。以下是一个使用C、ADO和Oracle的示例,从数据库中获取数据并将其显示在命令行界面上:

#include #include #include #include #include #include #include #define QUERY "SELECT * FROM CUSTOMERS" int main(int argc, char * argv[]) { HRESULT hr; _bstr_t strCnn("Provider=MSDAORA;Data Source=ORACLE_DB;User Id=user;Password=passwd;"); _bstr_t strQuery(QUERY); CoInitialize(NULL); try { // 创建ADO连接并打开数据库 _ConnectionPtr pConn; hr = pConn.CreateInstance(__uuidof(Connection)); if (SUCCEEDED(hr)) { pConn->ConnectionString = strCnn; pConn->Open("", "", ""); } // 创建命令对象,执行查询,并取回记录集 _RecordsetPtr pRs; hr = pRs.CreateInstance(__uuidof(Recordset)); if (SUCCEEDED(hr)) { pRs->Open(strQuery, (IDispatch *)pConn, adOpenStatic, adLockReadOnly, adCmdText); } // 显示每一个记录的每一个字段 while (!pRs->adoEOF) { for (int i = 0; i<pRs->Fields->Count; i++) { printf("%s:%s\\t", (const char *)pRs->Fields->GetItem(i)->Name, (const char *)pRs->Fields->GetItem(i)->Value); } printf("\\n"); pRs->MoveNext(); } pRs->Close(); pConn->Close(); } catch (_com_error &e) { // 处理异常 printf("Error: %s\\n", (char *)e.ErrorMessage()); } CoUninitialize(); return 0; }