『壹』 mfc如何远程连接sql数据库
1. 配置SQL Server外围应用服务器,开启SQL Server 2005远程连接功能:
“配置工具”->“SQL Server外围应用配置器”-> 选择“服务和连接的外围应用配置器”->选择Database Engine节点下的 “远程连接”-> 选择“本地连接和远程连接”-> 选择“同时使用TCP/IP和named pipes”-> 点击确定,重新启动
数据库
服务。
2. 把登陆设置改为SQL Server 和 Windows 身份验证模式:
打开SQL Server Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQL Server 和 Windows 身份验证模式”。
3.修改SQL Server sa的密码:
在SQL Server Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQL Server2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.设置SQL Server 的端口号
在SQL Server Configuration Manager管理器中,展开SQL Server 2005 Network Configuration项目 -> 单击下面的 Protocols for 'dbname' -> 在右侧的窗口中,右键单击"TCP/IP"项,选择"属性" -> 打开"TCP/IP properties"窗口 - > 单击"IP Address"选项卡 -> 将所有IP地址下面的 "TCP Port" 值设置成1433
5.确保开启SQL Server服务
在SQL Server Configuration Manager管理器中, 选中SQL Server 2005 Services,在右侧的窗口中启动SQL Server ('YourInstance'),
6. 修改连接字符串,在字符串中加入SQl Server 服务的端口号.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
7.连接coder:
stdafx.h中引用:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
8. 连接SQL SERVER服务器,并连接数据库
if(!AfxOleInit()) //这就是初始化COM库
{
AfxMessageBox("数据库初始化出错!");
}
_ConnectionPtr pCn("ADODB.Connection");
pCn->Open((_bstr_t)"Driver=
{SQL Server};Server=127.0.0.1,1433;Database=carcom;UID=sa;PWD=abc123456","","",adModeUnknown);
『贰』 MFC中怎么连接SQL数据库
1. 由于使用的是架构 首先需要在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;
}
『叁』 mfc中怎么连接数据库。
IMPLEMENT_DYNAMIC(appendSet, CRecordset)
appendSet::appendSet(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CCode2_3Set)
/* m_username = _T("");
m_psw = _T("");
m_nFields = 2;*/
id=_T("");
stockid=_T("");
buytime=_T("");
selltime=_T("");
number=_T("");
m_nFields = 5;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
CString appendSet::GetDefaultConnect()
{
return _T("ODBC;DSN=stock");
}
CString appendSet::GetDefaultSQL()
{
return _T("[stock]");
}
void appendSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CCode2_3Set)
pFX->SetFieldType(CFieldExchange::outputColumn);
/*RFX_Text(pFX, _T("[username]"), m_username);
RFX_Text(pFX, _T("[psw]"), m_psw);*/
RFX_Text(pFX, _T("[id]"), id);
RFX_Text(pFX, _T("[stockid]"), stockid);
RFX_Text(pFX, _T("[buytime]"), buytime);
RFX_Text(pFX, _T("[selltime]"), selltime);
RFX_Text(pFX, _T("[number]"), number);
//}}AFX_FIELD_MAP
}
// CCode2_3Set diagnostics
#ifdef _DEBUG
void appendSet::AssertValid() const
{
CRecordset::AssertValid();
}
void appendSet::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
这是我以前用的.连接ACCESS数据库.你参考下
如果还有疑问请发到我的邮箱里.
『肆』 MFC如何用数据库
你首先安装Mysql,然后使用下面代码
在MyProc类中增加MySqlConnect方法,strUSR,strPWD分别为用户名和密码,登陆数据库需要
BOOL MyPorc::MySqlConnect(CString strUSR,CString strPWD)
{
unsigned short Port = 3306; //端口
CString IPAddress ="127.0.0.1"; //本地数据库
CString UserName = strUSR;
CString Password = strPWD;
ssock=(MYSQL *)malloc(sizeof(MYSQL));
mysql_init(ssock);
if(ssock == NULL)
{
AfxMessageBox("连接失败,请稍后在试! ");
return FALSE;
}
ssock = mysql_real_connect(ssock, IPAddress, UserName, Password, NULL, Port, NULL, 0);
if(!ssock)
{
unsigned int mtint = mysql_errno(ssock);
AfxMessageBox("登陆失败! ");
return FALSE;
}
return TRUE;
}
『伍』 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(); //将记录移到下一行
}
}
本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.
『陆』 MFC怎么与数据库连接,求详细步骤!!!!!急急急!!!!!!
比如在你的工程目录中建一个
dbf\vir.mdb
//access数据库,然后你需要做以下操作:
1.在stadafx.h里面添加#include
//新加入头文件,用于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();
//将记录移到下一行
}
}
本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.
『柒』 mfc中连接access数据库的详细步骤都是什么
比如在你的工程目录中建一个 dbf\vir.mdb //Access数据库,然后你需要做以下操作:x0dx0a1.在StadAfx.h里面添加#include //新加入头文件,用于CDatabase类。x0dx0a2.在StadAfx.h最后的#endif上添加#import "msado15.dll" no_namespace rename("EOF","rsEOF")x0dx0a这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径x0dx0a3.在你自己的工程里,比如MyProc是你建的工程,添加代码x0dx0aCMyPorcApp::CMyProcApp(){x0dx0aCoInitialize(NULL);x0dx0aSQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",\x0dx0a "DSN=MyImage;DBQ=dbf\\vir.mdb;DEFAULTDIR=dbf"); //注册本地数据库数据源x0dx0am_db.OpenEx("DSN=MyImage;;",CDatabase::noOdbcDialog);//MyImage是数据源名称x0dx0a}x0dx0a4.在前面的函数体之前创建全局变量CDatabase m_db; CRecordset m_rec(&m_db);x0dx0a5.使用数据库{x0dx0a CString strSQL="select * from virdb"; x0dx0a BSTR bstrSQL=strSQL.AllocSysString();x0dx0a m_rec.Open(CRecordset::dynaset,strSQL);x0dx0a while(!m_rec.IsEOF()) x0dx0a{x0dx0a // 使用数据库的代码,读出来的数据都是字符串型的x0dx0a CString MyVirable;x0dx0a m_rec.GetFieldValue("字段名",MyVirable); //将某个字段的当前行的值读到MyVirabl中x0dx0a // ......x0dx0a m_rec.MoveNext(); //将记录移到下一行x0dx0a }x0dx0a}x0dx0ax0dx0a本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.
『捌』 MFC怎么连接数据库
mfc一般用到的数据库是access ,SqlServer, sqlite
另外Oracle虽然不错但是跟Java比较合适,mfc稍微麻烦点
连接方式有ado,odbc,小型数据库的话我个人更推荐前者,因为odbc需要在一台电脑上进行配置,可移动性很差,而ado的话只要一个主程序一个数据库就可以拖到另一台电脑上直接用(仅限于access)
SQLite比较特殊,有自己的连接和操作方法,全部集成在一个头文件里,使用起来跟access SqlServer之类的有很大的不同,编程起来难度倒是相差不多,适合纯c的嵌入式开发
如果你们项目不大,数据库小,需要可移动性高的话 我推荐ado连access 我这有例子可以给你参考,另外ado连SqlServer我这也有可以给你,其他的目前还没有,所以帮不上了