简单演示ADO连接MYSQL数据库_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2113 | 回复: 0   主题: 简单演示ADO连接MYSQL数据库        下一篇 
d87025284
注册用户
等级:新兵
经验:62
发帖:59
精华:0
注册:2011-10-31
状态:离线
发送短消息息给d87025284 加好友    发送短消息息给d87025284 发消息
发表于: IP:您无权察看 2014-12-24 15:23:21 | [全部帖] [楼主帖] 楼主

ODBC方式链接。
1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF");
#import"C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace \
rename("EOF","adoEOF")rename("BOF","adoBOF")


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("select name,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))
{//获取记录
      CString name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal;
      int no=recordPtr->GetCollect(_variant_t("stuno")).intVal;
}
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为密码
CString conStr=_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方式相同
以下是两种数据库变换代码:

void CExecuteDlg::OnInitADOConn()
{
try
...


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论