如何通过ADO接口连接数据库

简介: 如何通过ADO接口连接数据库

问题详述:


ADO最主要的优点是易于使用、速度快、内存支出少和磁盘痕迹小。在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所以这些都是为了提供轻量、高性能接口。那么如何实现ADO连接数据库呢?


打开百度APP,查看更多高清图片

如果对你有帮助的话,帮忙推荐同学朋友关注公众号,是小编最好的支持


具体过程:


首先需要一个ODBC数据源。然后用_ConnectionPtr对象打开数据库连接,_RecordsetPrt对象获取记录集,这样就完成了数据库的链接。最后在不使用该数据库后要需要先后使用函数_RecordsetPrt::Close和_ConnectionPt::Close断开连接。


相关代码如下:


(1) 为了使用ADO,必须先引入Ado库文件(在stdafx.h文件中),代码如下:


#import"c:\Program Files\Common Files\System\ado\msado15.dll"no_namespacerename(“EOF”,“adoEOF”)


(2) 分别声明数据库连接_ConnectionPtr和记录集_RecordsetPtr类型的变量;


_ConnectionPtr pConn;//数据库连接


_RecordsetPtr pPtr; //记录集对象


(3) 完成数据库的链接,代码如下:


BOOL CMainDlg::OnInitDialog()


{


CDialog::OnInitDialog();


// 将“关于…”菜单项添加到系统菜单中。


// IDM_ABOUTBOX 必须在系统命令范围内。


ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);


ASSERT(IDM_ABOUTBOX < 0xF000);


CMenu* pSysMenu = GetSystemMenu(FALSE);


if (pSysMenu != NULL)


{


CString strAboutMenu;


strAboutMenu.LoadString(IDS_ABOUTBOX);


if (!strAboutMenu.IsEmpty())


{


pSysMenu->AppendMenu(MF_SEPARATOR);


pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);


}


}


}


CommandPtr pCommandPtr;


try


{


if (FAILED(pCommandPtr.CreateInstance(“ADODB.Command”)))


{


//AfxMessageBox(“GetUserIdFromUserProArray 创建_CommandPtr对象失败”);


return 0;


}


}


catch(_com_error e)


{


CString errormessage2;


errormessage2.Format(“CMainDlg GetUserIdFromUserProArray-创建_CommandPtr对象异常!\r\n 错误描述:%s \r\n 错误信息:%s”,


(LPCTSTR)e.Description(),e.ErrorMessage());


//AfxMessageBox(errormessage2);


PrintRunningLog((LPSTR)(LPCTSTR)errormessage2);


return 0;


}


//1@[UserProArray]


pCommandPtr->ActiveConnection = pConnection;


for(int ii = 0;ii<1;ii++)


{


_RecordsetPtr pSystemSetWifiPtr;


try


{


CString strSystemSetSql;


strSystemSetSql.Format(“select UserId from [UserProArray] where [projectCode]=’%s’”,procode);


//CString strSystemSetSql = "select * from 系统设置 ";


pCommandPtr->CommandText = _bstr_t(strSystemSetSql);


pSystemSetWifiPtr = pCommandPtr->Execute(NULL,NULL,adCmdText);


if (pSystemSetWifiPtr == NULL) //判断记录集是否为空,空退出


{


break;


}


if (pSystemSetWifiPtr->adoEOF) //判断数据库是否有数据


{


break;


}


if (pSystemSetWifiPtr->GetRecordCount()) //获取数据库数据数目


{


pSystemSetWifiPtr->MoveFirst(); //指向第一行


}


else


{


//释放记录集和连接


pSystemSetWifiPtr->Close();


pSystemSetWifiPtr.Release();


pSystemSetWifiPtr = NULL;


break;


}


}


相关文章
|
2月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
SQL Java 数据库连接
数据库常用接口
ODBC(Open Database Connectivity):开放数据库互连技术为访问不同的SQL数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性,一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access,MySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
61 3
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
50 1
|
12天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
12天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
42 3