永发信息网

c或c++连接数据库,求代码,求指教,很急!

答案:1  悬赏:0  手机版
解决时间 2021-01-30 10:13
c或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; //数据库连接对象
构造函数中添加如下语句
m_ptrConnection = NULL;
::CoInitialize(NULL);
//连接数据库的主要代码
BOOL DataVisitor::ConnectDataBase(_bstr_t connectionStr)
{

if(m_ptrConnection == NULL)
{
HRESULT hr = m_ptrConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
return FALSE;
}
else
{
_bstr_t strConnect = connectionStr;
//"Provider=SQLOLEDB;Server=(local);Database=navigation; uid=sa; pwd=3277625;";

m_ptrConnection->CursorLocation = adUseClient;
m_ptrConnection->IsolationLevel = adXactReadCommitted;
try
{
m_ptrConnection->Open(strConnect,"","",adModeUnknown);
return TRUE;
}
catch (_com_error e)
{
// AfxMessageBox((char *)e.Description());
return FALSE;
}

}
}
return TRUE;
}

2. 利用ODBC连接
#include
CDaoDatabase *MyDataBase;

BOOL MyDB_OperSqL::Open_MyDatabase(CString connstr)
{
try
{
if (MyDataBase == NULL)
{
MyDataBase = new CDaoDatabase();
}
MyDataBase->Open(NULL,0,0,connstr);

}
catch( CDaoException* e )
{
CString message = _T("MyDB_OperSqL 数据库异常: ");
message += e->m_pErrorInfo->m_strDescription;
char info[400];
sprintf(info,message);
DispErrorMessage(info,__LINE__);
e->Delete( );
return FALSE;
}
catch (CMemoryException *e)
{
DispErrorMessage("MyDB_OperSqL 内存异常!",__LINE__);
e->Delete( );
return FALSE;
}
catch(...)
{
DispErrorMessage("MyDB_OperSqL 其它异常!",__LINE__);
return FALSE;
}
return TRUE;
}
这里的连接字符串connstr一般是如下内容
"ODBC;DRIVER={SQL Server};SERVER=(local);DATABASE=yourDataBase;UID=yourID;PWD=yourPassword"

如果直接用Microsoft ADO Datebase Control控件的话,连接字串可以自己生成,在控件的属性里面找到拷贝就行,这种最简单
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如图是某种树叶的外形图,图中①②③④分别代
汽车车牌号码测吉凶
古调诗的意思是什么啊?知道的请说下!
求知道这个小铁片放哪里?拆开装不上了
垫江县五龙桥小学幼儿园地址在什么地方,我要
x战警地址在哪,我要去那里办事
GeForce,Radeon HD都是什么意思?怎么读?
A、B两地实地距离l0千米,在图上的距离为l0厘
郭亮村二日游常熟有吗
公司帮我买社保的时候,社保局说我之前的学生
成都有哪些大型平面创意展览会?有没有具体时
谁有"孤单公园"的歌词
垫江县澄溪镇阳光幼儿园地址在哪,我要去那里
酒都国际影城地址在什么地方,我要处理点事
东极的意思是什么啊?知道的请说下!
推荐资讯
一、填空题 1、甲数和乙数的比5∶2,乙数和丙
请问有谁知道当年鲁迅在广东的中山大学任教了
一部电脑里有恶魔的电影
b2驾驶证年审新规定
2015元旦是我爸爸的六十大寿,又逢退休,请各
⑯A、B、C、D4名学生按任意次序站成一排
津溪家政地址在哪,我要去那里办事
李鸿章《至总理各国事务衙门函》:“日本君臣
pro6电池循环充电多少次才不耐用
深圳市 新爱购 国际 电子商务有限公司,,怎
香港汇丰银行可以在国内取钱吗?
辱莫的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?