ADO访问数据库
时间:2022-05-03
本文章向大家介绍ADO访问数据库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
大致操作过程:
_Connectionptr : CreateInstance , Open , ... Close , Realse
_CommandPtr : CreateInstance , ActiveConnection , CommandText , Excute , ... Close , Realse
_RecordsetPtr : CreateInstance , GetCollect 、Move(MoveNext,MoveFirst)、AddNew、PutCollect、Update , ... Close , Realse
ODBC方式链接。
1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。
#import "C://program files//commonfiles//system//ado//msado15.dll" no_namespacerename ("EOF","adoEOF")
2、链接数据库
CoInitialize(NULL); //初始化Com组件
_ConnectionPtr conPtr; //数据库链接指针
//conPtr.CreateInstance("ADODB.Connection"); //Connection用于与数据库服务器的链接
conPtr.CreateInstance(__uuidof(Connection)); //Connection用于与数据库服务器的链接另一种方式
/******************连接数据库********************/
try
{
conPtr->ConnectionTimeout = 5; //设置连接时间
// MySqlTest为数据源名 localhost表示本地root表示用户名 sa表示密码
//链接方式1,使用这种方式链接时要注意在设置数据源时一定要选择一个数据库
//conPtr->Open("DSN=MySqlTest;server=localhost;","root","sa",adModeUnknown);///连接MySql数据库(测试成功)
//链接方式2采用这种方式链接时在创建数据源时没有必要选择一个数据库 conPtr->Open("DSN=MySqlTest;server=localhost;database=test;","root","sa",adModeUnknown);///连接MySql数据库(测试成功)
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.ErrorMessage());
}
CoUninitialize(); //释放com组件//不知是否有必要
3、访问数据库
_RecordsetPtr recordPtr;//数据集指针
recordPtr.CreateInstance(__uuidof(Recordset));
CString cmdStr=_T("selectname,stuno from student");//student为表名 该表中有两个字段name(字符型)stuno(int型)
try
{
recordPtr->Open(_variant_t(cmdStr),
conPtr.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
while(!(recordPtr->adoEOF))
{//获取记录
CStringname=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal;
intno=recordPtr->GetCollect(_variant_t("stuno")).intVal;
recordPtr->MoveNext();
}
recordPtr->Close();//关闭记录集
recordPtr.Release();//释放空间
conPtr->Close();//关闭连接
conPtr.Release();//释放空间
非ODBC方式链接。
链接数据库
CoInitialize(NULL); //初始化Com组件
_ConnectionPtr conPtr; //数据库链接指针
//conPtr.CreateInstance("ADODB.Connection"); //Connection用于与数据库服务器的链接
conPtr.CreateInstance(__uuidof(Connection)); //Connection用于与数据库服务器的链接另一种方式
// MySQL ODBC 5.1 Driver为驱动名称(取决于我们为MySql安装的驱动),localhost为服务器地址,test为数据库名,root为用户名(MySql默认用户名为root),sa为密码
CStringconStr=_T("Driver={MySQL ODBC 5.1 Driver };Server= localhost;Database=test;");
/******************连接数据库********************/
try
{
conPtr->ConnectionTimeout = 5; //设置连接时间
conPtr->Open((_bstr_t)conStr, _T("root"),_T("sa"), adModeUnknown);
}
catch(_com_error e) //捕捉异常
{
AfxMessageBox(e.ErrorMessage());
}
CoUninitialize(); //释放com组件
获取记录集
获取记录集的方式与ODBC方式相同
只要是在自己的电脑上对udl进行了连接测试成功后,在用记事本(如若不行,直接把文件的扩展名udl改成txt)打开这个文件,你会发现里面就写着自己电脑的数据库连接字符串!!!这都是网上别人的成果!!
- WordPress 路径相关函数总结(一):站点路径相关函数
- 在 ASP.NET 2.0 中,Global.asax 文件没有后置代码,如何将Globa.asax中的页面移到代码文件中
- 如何启用WSS 3的匿名用户访问
- 移除 WordPress 后台“外观-主题” 管理功能
- 移除 WordPress 后台插件管理的“编辑”与“停用”功能
- 区域设置 ID (LCID) 表
- jquery 表单事件
- Jexus以.NET(Phalanger)方式支持PHP的网站
- jquery鼠标事件
- Jexus 负载均衡
- 用.NET Framework 2.0创建 Form设计器[翻译]
- jquery事件绑定
- Fontello:免费Web-font 图标大集合(font-face 图标集)
- 通过 wp-config.php 禁止安装、升级或编辑WordPress 主题与插件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Kubernetes引入结构化日志
- ServerEndpoint注解无法注入NoticeService
- 警告:有用的警告|让Kubernetes的使用越来越容易
- MySQL索引凭什么让查询效率提高这么多?
- 女朋友问我:Dubbo的服务引用过程
- 一致性hash算法及java实现
- 【Pytorch 】笔记九:正则化与标准化大总结
- 【Pytorch 】笔记十:剩下的一些内容(完结)
- 你知道怎么查看 IP 地址吗?
- spring cloud微服务之间的调用
- 华为网络整体解决方案 | 整体布局思想一定要有!
- java使用influxDB时序数据库
- 网络工程师必看 | 从动态图看VLAN技术,建议收藏!
- 【原创】Java并发编程系列35 | ScheduledThreadPoolExecutor定时器
- 『极限版』不掺水,用纯 CSS 来实现超飒的表单验证功能