当前位置:首页 » 数据仓库 » c如何连接access数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c如何连接access数据库

发布时间: 2023-06-06 00:34:59

c语言如何连接Access数据库

看视频上是连接Mysql数据库,MySQL安装后配置比较麻烦,所以我试着用老师给的模板连接Access数据库,Access是比较方便使用的 只要装了office几乎都有. 首先在网络搜索odbc 连接字符串 找到的是asp连接Access的方法,但是ODBC是通用的,所以直接拿过来也能用. 将 SQLCHAR ConnStrIn[MAXBUFLEN] = “DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=test;CharSet=gbk;”; 部分改成 SQLCHAR ConnStrIn[MAXBUFLEN] = “Driver={Microsoft Access Driver (*.mdb)};Dbq=//mydatabase.mdb;Uid=Admin;Pwd=;CharSet=gbk;”; Dbq指的是你的数据库所在路劲 当然之前你应该在c:/下新建一个数据库名为mydatabase.mdb,而且如果后面的SQL操作语句是老师写的 result = SQLPrepare(hstmt,(SQLCHAR*)“insert into T_Person(FAge,FName) values(20,'kider')”,SQL_NTS); 那么你也要在之前建立好一个表T_Person,和表中的两个字段FAge,FName.否则会出错. 怎么样,已经成功链接到Access了吧,接下来你就可以发扬广大了,做个管理系统之类的东东.!

② c++怎么连接access数据库

环境配置:
1. 先安装你的Access数据库(微软Office 2016中含有或者单独下载,下载地址:http://msdn.itellyou.cn/ 左侧选择应用程序一栏,注意选择下载64位,即标有X64的)
特殊情况查看意外解决方案 (A)
2. 安装Microsoft Access database engine 2007,他的作用暂时可理解为我们所写的程序与Access之间的沟通桥梁--“传话人”。
Microsoft Access database engine 2010(可以安装,但后面的代码是2007的,所以暂时建议使用2007)
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
Microsoft Access database engine 2007
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=23734
特殊情况查看意外解决方案 (C)

连接与测试代码:
本例代码使用VS2010以上版本测试
建议去文末下载写好的含注释的测试代码看。

1. 新建你的数据库表
打开Access
选择空白数据库,为你的数据库中表项起一个名字 如 Test
设计你的存储表格
本例附有测试表格database1.accdb
2.
在你程序的stdafx.h头文件中加入
#import"C:/ProgramFiles/CommonFiles/System/ADO/msado15.dll"
rename("EOF","adoEOF"), rename("BOF","adoBOF")
(如果加载失败的话,去c:\program files\common files\system\ado查看是否有msado15.dll)
3.测试代码介绍
// LinkDBForHX.cpp : 定义控制台应用程序的入口点。

[cpp] view plain

#include "stdafx.h"
#include<iostream>//atlstr
#include<atlstr.h>
using namespace ADODB;
using namespace std;

class AdoAccess {
public:
_ConnectionPtr HX_pConnection; // 数据库指针
_RecordsetPtr HX_pRecordset; // 命令指针
_CommandPtr HX_pCommand; // 记录指针
void OnInitADOConn() {
::CoInitialize(NULL);
try
{
HX_pConnection.CreateInstance(__uuidof(Connection));//等价于 //HX_pConnection.CreateInstance("ADODB.Connection");
//此句包含定位你数据库的所需的访问信息
_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;Persist Security Info=False ";
//测试//_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.accdb;Persist Security Info=False";//此句包含定位你数据库的所需的访问信息
//测试//_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Driver = { Microsoft Access Driver(*.mdb, *.accdb) }; DBQ =Database1.accdb;Persist Security Info=False ";
//此句包含定位你数据库的所需的访问信息
//连接master数据库,无密码。
HX_pConnection->Open(strConnect,"","",adModeUnknown); //连接数据库

cout << "连接成功,并获得智能指针" << endl;
}
catch (_com_error e)
{
cout <<e.Description() << endl;
}

}
void ExitConnect() {
if (HX_pRecordset != NULL)
HX_pRecordset->Close();
HX_pConnection->Close();
::CoUninitialize();
}
};

int main()
{
AdoAccess dataBase;

//初始化
dataBase.OnInitADOConn();
dataBase.HX_pRecordset.CreateInstance("ADODB.Recordset");

//选择名为Test的表格
dataBase.HX_pRecordset->Open("select * from Test",
dataBase.HX_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);

int i = 0;
//读取其中的name字段所有数据,并显示
while (!dataBase.HX_pRecordset->adoEOF)
{

_variant_t var;
string strValue;
var = dataBase.HX_pRecordset->GetCollect("name");
//其他类似,都是通过HX_pRecordset传递SQL语句执行查找、添加、删除等命令

if (var.vt != VT_NULL)
strValue = _com_util::ConvertBSTRToString((_bstr_t)var);

++i;
cout << "name " << i << " " << strValue << endl;;

dataBase.HX_pRecordset->MoveNext();
}

//卸载com组件
dataBase.ExitConnect();
int xxxx = 0;
cout << "输入数字结束\n";
cin >> xxxx;
return 0;
}
意外情况解决方案
A 描述:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
请正确安装环境配置中的第一步
B 若A无法解决问题。
选择 该应用程序的 应用程序池 ------>选择高级设置--------->启用32位应用程序 ------->true
操作如下:
按下win + R
在弹出的对话框中输入inetmgr,然后按回车键
选择最左侧
点击应用程序池
再点击下图的DefaultAPPPool
选择高级设置
选择启用32位应用程序 ---置为True.
最后选择确认保存
C 重新安装 Microsoft Access databaseengine 2007
D 程序若提示缺少符号集,请下载相关符号集或者在联网状态下动态加载

③ 如何连接access数据库

1

首先确保Aess与开发工具Visual Studio都正确安装了,如果没安装的话需要下载相关的软件安装一下,Visual Studio不限制你的版本,2012,2008什么的都行。

2

然后在一个盘符下右键创建一个aess文件,比如我创建了一个aaa.adb ,注意Aess07之前你创建的话后缀名都是.mdb而07和10版本后缀名已经为.adb了。这个需要你熟悉的,因为不同的后缀名影响下面的连接的。

3

然后我们在Aess中添加一个数据表(tb_test),随便加几列内容,如下所示:

4

打开Visual Studio,新建一个Winform窗体,在窗体上放一个button按钮,剩下的就颂旦碧是书写点击按钮后的方法了

5

点击button按钮后我们要做的就是连接数据库,然后查询数据库中我们刚才新建的表,将其赋值给一个DataSet。我们先来看看怎么怎么连接。连接要用到连接字符串,这个就和上面我们说的后缀名有联系了。注意.mdb和.adb的连接方式是不一样的,分别如下:

string ConStr_Adb = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:aaa.adb;Persist Security Info=False;";

string ConStr_Mdb = @"Provider=Microsoft.ACE.OLEDB.4.0;Data Source=F:aaa.adb;Persist Security Info=False;";

6

拼接好连接字符串以后,下面就野举是建立连接获取数据了,这我就不多说了,代码截图整体如下:

7

写完了以后你运行以后,可能会报如下的错误:未在本地计算机上注册microsoft.ace.12.0。这个是由于计算机中缺少驱动程序造成的,去官网下载安装即可

8

到这里连接Aess数据库的方法就讲解完了,我们用的是net,你如果用迟芹别的语言,步骤也一样,只不过换一下新建连接的方式即可。

④ c# 局域网连接ACCESS数据库如何写连接字符串

1.首先使用Access创建一个数据保存在硬盘某处,使用.MDB。

⑤ 怎样用C++连接并使用access数据库

使用C++编程语言,连接对Access数据库进行操作,常用的方法有DAO和ADO两种方式,本文将介绍采用ADO的方式方位Access数据库。
先介绍一下ADO,ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组建。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。
在程序的开始,首先导入所需要的库:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") ,这里重命名EOF是必要的,因为典型的VC应用都已经定义了EOF作为常数-1。
完整的程序如下,以注释的形式来对程序进行解释:
_ConnectionPtr m_pConnection; //连接access数据库的链接对象
_RecordsetPtr m_pRecordset; //结果集对象
CoInitialize(NULL); //初始化
m_pConnection.CreateInstance(__uuidof(Connection)); //实例化对象

//连到具体某个mdb ,此处的的Provider语句因Access版本的不同而有所不同。
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyAccess.mdb","","", adModeUnknown);
}
catch(_com_error e)
{
AfxMessagebox(_T("数据库连接失败!"));
return;
}

m_pRecordset.CreateInstance(__uuidof(Recordset)); //实例化结果集对象
//执行sql语句
try
{
CString sql= _T("select * from Patient");
m_pRecordset->Open(sql, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//处理结果集
try
{
//若结果为空,结束
if(m_pRecordset->BOF)
{
AfxMessageBox_T(("表内数据为空!"));
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//游标定位到第一条记录
m_pRecordset->MoveFirst();
_variant_t var; //从结果集中取出的数据放到var中
char *name;
while(!m_pRecordset->adoEOF)
{
var= m_pRecordset->GetCollect("Name"); //要取字段的名称。
if(var.vt != VT_NULL)
{
name= _com_util::ConvertBSTRToString((_bstr_t)var); //转换成char*类型
}
string MyName = name;
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMssage());
}
//退出程序时的处理 ,关闭数据库的相关操作
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}

⑥ 如何在c程序中调用access数据库

c语言不能连接数据库,只能用文件保存数据;
我在学习的时候也曾遇到过这样的问题,请教老师,老师告诉我C语言主要用来开发系统的,还有就是用来开发游戏的。一般用文件保存数据。不会用到数据库;
要用数据库的语言有VB,java,c#,Dephi等等

⑦ MFC中如何连接access数据库

比如在你的工程目录中建一个dbfvir.mdb//Access数据库,然后你需要做以下操作:

1.在StadAfx.h里面添加#include<afxdb.h>//新加入头文件,用于CDatabase类。

2.在StadAfx.h最后的#endif上添加#import"msado15.dll"no_namespacerename("EOF","rsEOF")

这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径

3.在你自己的工程里,比如MyProc是你建的工程,添加代码

CMyPorcApp::CMyProcApp(){

CoInitialize(NULL);

SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)",

"DSN=MyImage;DBQ=dbf\vir.mdb;DEFAULTDIR=dbf");//注册本地数据库数据源

m_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是数据源名称

}

4.在前面的函数体之前创建全局变量CDatabasem_db;CRecordsetm_rec(&m_db);

5.使用数据库{

CStringstrSQL="select*fromvirdb";

BSTRbstrSQL=strSQL.AllocSysString();

m_rec.Open(CRecordset::dynaset,strSQL);

while(!m_rec.IsEOF())

{

//使用数据库的代码,读出来的数据都是字符串型的

CStringMyVirable;

m_rec.GetFieldValue("字段名",MyVirable);//将某个字段的当前行的值读到MyVirabl中

//......

m_rec.MoveNext();//将记录移到下一行

}

}

本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.