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

vc连接数据库操作

发布时间: 2022-09-10 08:15:58

① vc++ 用ADO链接数据库怎么连

由于我也刚开始学,前几天找到的,好使,我试过的,有什么问题你可以问我

首先,要用#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怎么连接sql数据库

我用的是数据源ODBC。先打开控制面板上的管理工具。然后打开数据源。添加描述数据什么。然后去到vc那里。新建单个文档。下一步选择W数据库查看使用文件支持,单击DatabaseSource按钮。选择之前你设好的数据源。就连好了数据库了。

③ VC怎么操作数据库

你必须建立数据库的工作...
在“控制面板”,选择“管理工具”,打开数据源(ODBC),然后ODBC数据源管理器对话框弹出。系统
打开“DNS”选项卡上,单击“添加”,选择。附上海涂种植Access驱动程序(* mdb)中,单击“完成”,然后输入数据源的名称和说明。 (如果你是在其他人的代码,数据源的名称可能得到,所以你必须找到工作,他使用的数据源名称)。

(你下载的源代码的数据库的路径),然后选择数据库。

它只是设置。 。 。

④ VC++连接数据库问题

我先帮你把语句解释下,
CLoginSet是C++封装的一个连接数据库的类,至于类的成员函数与成员变量你自己可以查msdn去了解它的功能,先用CLoginSet 定义了一个指针,构造时同时传入m_database的值,m_database它应该是一个数据库类型的指针,包含了数据库的名字,连接字段,开启连接的操作(相当于C#的open()函数)等等,然后就执行sql的语句,(就是你省略的部分),strSQL是一个数据库操作类的一个实例,Rormat是该类的成员函数,作用是保存sql语句。

这么解释你是不是觉得一头雾水,不知道你知不是类和实例的概念,类就是实例的抽象,比如人这个类就是可以吃饭,走路,睡觉,工作,谈恋爱等等,但是每个人的这些属性都不一样,喜欢不一样的饭菜,不同的走路习惯,不同睡姿,不同工作,喜欢不一样的人。
计算机里面的类也是这样,连接类就包括,连接数据库,开启数据库,关闭数据库,但是连接哪个数据库,什么时候开启和关闭都是每个实例都不同的。CloginSet就是一个连接类,只是定义它的类的内容已经被C++封装起来了,你只需要知道接口是什么,怎么用就行,但是你需要实例化一个对象(就是m_recordset)来完成连接特定数据库这一操作,实例化的同时你就告诉它我要连接m_database这个数据库。strSQL是另外一个类实例化出来的对象,完成查询等一系列数据库的操作。
如果你看不懂,肯定几个词不明白,类,对象,实例化,实例,封装,接口,等。等你知道他们的含义,就知道他们之间的道理了。

C++连数据库确实不容易上手,相比较而言建议你用C#语言(vs2005平台)来做数据库的管理系统实验,它更容易上手,也更容易理解类和实例的关系,这些面向对象的思想。

⑤ VC与数据库连接(数据库该怎么建 )

数据库随便建啊,没要求的,程序里面的连接字符串设置好数据库地址,数据库名,登录用户名,登录密码就可以连了,和数据库里面具体字段没什么关系~

⑥ VC++中怎样连接数据库

(1)打开VC工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。

⑦ 怎么用VC连接ACCESS数据库

1.头文件引入ado库;2.初始化com库;3.写具体代码;例如以下代码可以实现连接access数据库并读取字段内容到listbox中:void CSJKDlg::OnButton1()
{
// TODO: Add your control notification handler code here
_variant_t var;
CString strName,strAdd;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset)); try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\My Documents\\sjk.mdb",
"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库sjk.mdb是否在当前路径下!");
//return FALSE;
} try
{
m_pRecordset->Open("SELECT * FROM biao",
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
} try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
MessageBox("表内数据为空");

}
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("name");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("add");
if(var.vt != VT_NULL)
strAdd = (LPCSTR)_bstr_t(var); m_AccessList.AddString( strName + " --> "+strAdd ); m_pRecordset->MoveNext();
} m_AccessList.SetCurSel(0);
}
catch(_com_error *e)
{
MessageBox(e->ErrorMessage());
}
m_pRecordset->Close();
m_pConnection->Close();
m_pRecordset.Release();
m_pConnection.Release();
}