vc++ 用ADO链接数据库怎么连?
(1)打开VC工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。
Lib目录下还有debug和opt两个目录,建议选debug。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib"
void CTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
try{HRESULThr;
CStringsql;
sql="Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=student ;Data Source=192.168.2.134";//你是SQL的话最好写IP,不要写服务器名
hr = this->m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr = this->m_pConnection->Open( (_bstr_t)sql,"","",adModeUnknown);
}
}catch(_com_error e)
{
}
}
首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现:
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。
其次,在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结束时关闭COM的操作,语句如下所示: AfxOleInit();
接着,就可以直接使用ADO的操作了。我们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍:
1、_ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句(用法和_CommandPtr中的Execute方法类似)。
——打开一个库连接。先创建一个实例指针,再用Open打开一个库连接,它将返回一个IUnknown的自动化接口指针。代码如下所示:
_ConnectionPtr m_pConnection;
// 初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些意想不到的错误。jingzhou xu
try
{
// 打开本地Access库Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");
return FALSE;
}
——关闭一个库连接。如果连接状态有效,则用Close方法关闭它并赋于它空值。代码如下所示:
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
vc 可以访问很多数据库,比如Access、SQL servel、MYSql、Orcal等数据库系统。也有很多数据库访问技术,比如ADO、ODBC、OLE DB等。每一种数据库系统都提供了一系列的API,在程序中可以通过编码的形式调用相应的API进而对数据库操作。
vc++访问ADO数据库:
1、导入ADO库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
2、用导入的动态库的指针操作数据库.
打开数据库连接
_ConnectionPtr m_pConn; // 数据库连接指针
// 创建Conneciton对象
m_pConn.CreateInstance(_T("ADODB.Connection"));
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(""), _T(""), lOptions));
m_sConn为你连接数据库的信息,你应该按照你的要求打开数据库
然后你用打开的那个连接进行操作数据库。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText);
pszSql 就你要操作数据库的SQL语句。在这个SQL语句里你可以创建表、更新表等。
用ADO访问的时候要求初始他COM库和释放COM对象
// 初始化COM环境(库)
::CoInitialize(NULL);
//释放COM对象
::CoUninitialize();
核心的就这些了,你再看一下相关的书籍吧
c++代码如何实现多用户注册和登陆
对于SQL Server数据库,C++使用MFC库,主要有两种方法可以连接sql数据库 1.利用ADO连接:import "msado15.dll" no_namespace rename("EOF", "EndOfFile")\/\/必须import这个dll,这个文件通常放在C:\\Program Files\\Common Files\\System\\ado路径下._ConnectionPtr m_ptrConnection; \/\/数据库连接对象 构造...
请教大侠:wince下用C++如何实现访问远程数据库?
把服务器的内网IP和端口对应上,然后连接IP就写成网络地址或域名然后后面跟上:映射的端口号 账户和密码就用游客账户 设置好后 调用就可以连接了 其他的跟访问内网的操作一样 连接数据库的语句是固定的 操作语句就是一般的SQL语句 具体用法百度搜索C++的ADO操作 很多例子 ...
用C++Builder6的ADO控件如何连接SQL Server2005数据库?为何选择服务器...
你数据库的地址没输就想找数据库就会出错。地址,如果是本地的: 127.0.0.1,端口(一般1433)127.0.0.1\\ 实例名 (Local等)远程的: IP,端口 IP\\实例名 端口要在数据库管理界面设一下,一般设成1433 建议你到 www.csdn.net上,论坛上有C++BUILDER板块 ...
c++builder Tquery控件使用方法
1、设置ConnectionString 属性连接数据库;或用AOConnection连接数据库,用ADOQuery的Connection属性连接AOConnection,间接连接数据库;2、设置SQL属性,连接数据表;3、设置Active属性,为TRUE,激活。
[转载]MFC 如何连接数据库(c++ 连接sql server )老
1.首先,你的机器上要保证有sql server,并能正确进入并创建数据库,表等。2.建议把那个SA的密码自己重新设定一下,设定方法:打开sql server 2005 SQL Server Management Studio,进去后在那个安全性--登录名--右键点击SA属性,设置密码,状态里面改成,授予 启用。3.将ADO代码库引入到工程中,需要在...
用ADO连接Oracle时,连接字符串该怎么写
在利用ado连接数据库之前,需要做一些准备 1.用#import指令引入ADO类型库 我们在stdafx.h中加入如下语句:import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoEOF") 。这一语句有何作用呢?其最终作用同我们熟悉的#i nclude类似,编译的时候系统会为我们生成...
c++ 通过ADO的方式访问数据库还要不要配置odbc数据源呀,
看你用什么方式了,如果安装了数据库驱动就可以直接连接,否则就用ODBC连接。ODBC是个通用驱动,但ADO本地驱动效率更高。
vc++ ADO数据库
1. 生成应用程序框架并初始化OLE\/COM库环境 创建一个标准的MFC AppWizard(exe)应用程序,然后在使用ADO数据库的InitInstance函数中初始化OLE\/COM库(因为ADO库是一个COM DLL库)。本例为: BOOL CAdotestDlg::OnInitDialog() { ::CoInitialize(NULL); \/\/初始化OLE\/COM库环境 } 程序最后要调用 ::CoUninitial...
C++ 连接SQL Server 数据库
AfxOleInit()初始化环境 _ConnectionPtr pConn;定义指针 _RecordsetPtr pRst;pConn.CreateInstance("ADODB.Connection");pRst.CreateInstance("ADODB.Recordset");初始化实例 pConn->ConnectionString="连接字符串";pConn->Open("","","",adConnectUnspecified);打开数据库 pRst=pConn->Execute("sql语句"...
请问C++如何连接Access数据库呢?谢谢了!
C++的数据库我是用的COM,ADO。初始化COM环境以后,可以用一个ADO对象。然后像游标一样操作。不知有否工具,但编程可以解决了。已经选择用VC6了,就该去掉用工具的习惯了。C++的魅力就好在写代码可以完成一切。这一好处使得大多数在编程上风雨半生的人立刻无可救药地爱上她。