当前位置:首页 » 操作系统 » mfc数据库实例

mfc数据库实例

发布时间: 2023-09-05 14:56:20

A. mfc中如何连接access数据库 求详细步骤

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

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

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

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

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

CMyPorcApp::CMyProcApp(){

CoInitialize(NULL);

sqlConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",

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

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

}

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

5.使用数据库{

CString strSQL="select * from virdb";

BSTR bstrSQL=strSQL.AllocSysString();

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

while(!m_rec.IsEOF())

{

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

CString MyVirable;

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

// ......

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

}

}

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

B. mfc如何远程连接sql数据库(mfc连接mysql数据库)

1.首先,你的机器上要保证有sqlserver,并能正确进入并创建数据库,表等。2.建议把那个SA的密码自己重新设定一下,设定方法:打开,进去后在那个安全性--登录名--右键点击SA属性,设置密码,状态里面改成,授予启用。3.将ADO代码库引入到工程中,需要在stdafx.h或TEST.h(这个MFC项目的头文件)中添加如下代码,注意不同的操作系笑扰迅统在安装时这个路径可能不一样,所以必须先在系统中找到msado15.dll文件的路径:加入代码:#import"C:ProgramFilesCommon.dll"no_namespacerename("EOF","adoEOF")?(通过以上代码就可以将ADO代码库引入到当前工程中)?4.在TEST工程中的TEST.h中加入如下代码:(蓝色为所加入的)classCSQL_TESTApp:publicCWinApp{public:?_m_pAppConn;?//连碰此接对象指针

CStringm_;?//连接字符串的声明

boolm_bConnected;//连接标志public:

CSQL_TESTApp();//Overrides

//

//{{AFX_VIRTUAL(CSQL_TESTApp)public:virtualBOOL();

。};?5.在TEST工程的TEST.CPP文件中加入如下代码:(蓝色为所加入的)BOOLCSQL_TESTApp::(){();?HRESULThRes;try{hRes=m_pAppConn.(_T("ADODB.Connection"));

m_pAppConn-

if(SUCCEEDED(hRes)){m_bConnected=TRUE;//连接成功设置李梁标志位}}catch(_com_errore){CString;

.(_T("连接数据库失败%s"),e.());

();//显示错误信息

returnFALSE;?}

C. MFC中怎么连接SQL数据库

1. 由于使用的是ADO架构 首先需要在StdAfx.h文件中导入msado15.dll 和 oledb32.dll连个动态连接库文件倒入方式为:
#import "msado15.dll" no_namespace rename ("EOF", "adoEOF")
#import "oledb32.dll" no_namespace
两个文件的实际所在位置由于系统安装的位置不同而不同。
no_namespace 使用无名命名空间 程序段比较短关联较少的话可以这样使用 否则请使用命名空间以免发生冲突,
rename ("EOF", "adoEOF") 重命名 EOF为 adoEOF 以免常量冲突。
2. 关于SQL Server以及的一些要求 首先安装SQL Server的机器必须是 NT架构以上的系统 如果使用的是Windows XP SP2 的话需要对SQL Server打上SP4补丁方可网络访问
3. 最好建立一个单独的数据库操作类 使程序中需要对数据库进行操作的地方继承这个类。
4. 类成员如下
_ConnectionPtr m_pConnection; // 数据库
_RecordsetPtr m_pRecordset; // 命令
_CommandPtr m_pCommand; // 记录
5. 方法如下
bool connect2database();
bool check_user(_bstr_t name, _bstr_t pwd);
bool CBugListCommon::connect2database()
{
_bstr_t ConnectionString = "Provider=sqloledb;Data Source='SQLSERVER';Integrated Security='SSPI';Initial Catalog='Test';User Id='sa';Password='sa';";
//Data Source 数据库实例名
//Initial Catalog表名
//User Id 用户名
//Password 密码
if(FAILED(CoInitialize(NULL)))
return FALSE;
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
m_pConnection->Open(ConnectionString , "", "", adConnectUnspecified);
return TRUE;
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败");
return FALSE;
}
return FALSE;
}

bool CBugListCommon::check_user(_bstr_t name, _bstr_t pwd)
{
_bstr_t cmdtxt = "SELECT User_Name, User_PassWord FROM User_Table WHERE (User_Name = N'";
cmdtxt = cmdtxt + name + "')";
// cmdtxt == SELECT User_Name, User_PassWord FROM User_Table WHERE (User_Name = N'name')
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = m_pConnection;
m_pCommand->CommandText = cmdtxt;
m_pRecordset = m_pCommand->Execute(NULL, NULL, adCmdText);
if(!m_pRecordset->adoEOF)
{
_bstr_t tn;
tn = m_pRecordset->GetCollect("User_PassWord");
if(tn == pwd)
return TRUE;
else
return FALSE;
}
return FALSE;
}

热点内容
编译人生 发布:2025-01-31 14:19:47 浏览:681
c语言数组题目 发布:2025-01-31 14:19:38 浏览:961
说话加密 发布:2025-01-31 14:02:28 浏览:552
android仓库管理系统 发布:2025-01-31 14:02:27 浏览:700
batsql语句 发布:2025-01-31 14:00:13 浏览:733
沈阳加密狗 发布:2025-01-31 13:54:58 浏览:705
联想服务器怎么装windows7 发布:2025-01-31 13:54:52 浏览:874
java二级考试历年真题 发布:2025-01-31 13:50:31 浏览:171
编程一刻 发布:2025-01-31 13:36:44 浏览:585
编程小草出土 发布:2025-01-31 13:33:27 浏览:579