c++连接数据库求助 15

可以大概讲解下.c++不同方式连接数据库的优略么.谢谢了... 可以大概讲解下.c++不同方式连接数据库的优略么.谢谢了 展开
 我来答
ahcc08
2014-04-28 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51941
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
用VC中的MFC吧,很好上手
#include <afxdb.h>

/* 连接数据库 */
CDatabase db;
BOOL bRtn;
try {
bRtn = db.OpenEx("DSN=数据源名;UID=sa", CDatabase::noOdbcDialog);
}catch (CDBException *pDBEx) {
pDBEx->ReportError();
}catch (CMemoryException *pMemEx) {
pMemEx->ReportError();
}
if (!bRtn)
printf("连接数据库失败!");

/* 操作结束后,关闭数据库 */
db.Close();
添加记录操作
#include <afxdb.h>

CDatabase db;
BOOL bRtn;
CString sql;

/* 1、连接数据库,见(1) */

/* 2、生成INSERT语句,赋给sql,例如: */
sql = "insert into student_table (s_sID, s_sName, s_sAge) values (‘001’, ‘ZhangSan’, 20);" ;

/* 3、往数据库中添加纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}

/* 4、关闭数据库 */
db.Close();

删除记录操作
#include <afxdb.h>

CDatabase db;
BOOL bRtn;
CString sql;

/* 1、连接数据库,见(1) */

/* 2、生成DELETE语句,赋给sql,例如: */
sql = "delete from student_table where s_SID =’001’;" ;

/* 3、从数据库中删除纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}

/* 4、关闭数据库 */
db.Close();
修改记录操作
#include <afxdb.h>

CDatabase db;
BOOL bRtn;
CString sql;

/* 1、连接数据库,见(1) */

/* 2、生成UPDATE语句,赋给sql,例如: */
sql = "update from student_table set s_sName=‘LiSi’,s_sAge=21 where s_SID =‘001’;" ;

/* 3、更新数据库中的纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}

/* 4、关闭数据库 */
db.Close();

查询、统计操作
#include <myRecordset.h>

CDatabase db;
BOOL bRtn;
CString sql;

/* 1、连接数据库,见(1) */

/* 2、生成查询/统计语句,赋给sql,例如: */
sql = "Select * From student_table where s_sAge=20;" ;

/* 3、打开记录集,查询/统计 */
CMyRecordset rs(&db);
try {
bRtn = rs.Open(CRecordset::snapshot,sql);
} catch(CDBException *pDBEx) {
pDBEx->ReportError();
} catch(CMemoryException *pMemEx) {
pMemEx->ReportError();
}
if(!bRtn) {
AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR);
return ;
}

/* 4、逐条获取查询结果 */
for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext()) {
// TODO: Add code here
}

/* 5、关闭记录集、数据库 */
rs.Close();
db.Close();

注:对连接查询,可以先创建视图,再对视图进行查询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式