如何用VC6.0(C++语言)连接自己用SQL2008做的数据库?求解! 50
先照下面这个教程的前两步设置好,然后就能调用_ConnectionPtr、_RecordsetPtr和_CommandPtr三个指针。
http://wenku.baidu.com/view/396ffb87d4d8d15abe234e71.html
_ConnectionPtr是用来建立连接的;_RecordsetPtr是用来对数据库记录集进行操作的,记录集说白了就是数据库的一个小的副本,你不能直接操作数据库,所有的操作都是对记录集操作,然后更新,就反应到数据库上边了;_CommandPtr还没用过,一般前两个就够了。
这几个指针虽然还算方便,但是比较繁琐的,我从一本书上找到了几个类将这几个指针重新封装了一下,使用起来更方便了。这本书是《多层结构的数据库应用系统的开发:VC6.0+CSocket+ADO+SQL server 》,书里讲的更详细。
下面是我写的一个例子,不太好,你就参考一下吧。
头文件.h
CSbtAdoCnn m_AdoCnn; //_ConnectionPtr的封装
CSbtAdoRst m_AdoRst; //_RecordsetPtr的封装
源文件.cpp
//数据库操作
CString strSource = m_AdoExc.GetStrSource(); //连接字符串获取,可以直接写,后边那个函数请忽视
CString strUser = m_AdoExc.GetStrUser(); //用户名获取
CString strPwd = m_AdoExc.GetStrPwd(); //密码获取
CString strSQL; //SQL命令,决定了打开什么样的记录集
CSbtStrArr m_FieldValues; //CSbtStrArr是将CStringArray重新封装的一个类,m_FieldValues用存记录集的一行数据
m_AdoCnn.Open(strSource, strUser, strPwd); //先建立连接
strSQL = "SELECT * FROM mydatabase";
m_AdoRst.Open( //这几个参数参见CSbtAdoRst里的说明
m_AdoCnn.GetCnnPtr(),
strSQL,
adOpenStatic,
adLockOptimistic,
adCmdText);
m_AdoRst.MoveFirst(); //移到ado记录集第一行
while(!m_AdoRst.IsEOF())
{
m_AdoRst.GetFieldsValue(m_FieldValues); //取得一行记录
//------------------------------------------
//你的操作
//==========================
m_AdoRst.MoveNext(); //移到下一行
}
m_AdoRst.Close();
m_AdoCnn.Close();
2013-04-16
http://wenku.baidu.com/view/0105b76daf1ffc4ffe47ac41.html
1. 导入这个ado类
2. 在构造函数或 其他地方连接数据库
if( !m_ado.Connect(CAdoDB::DBT_SQL,"数据库名","密码","用户","主机IP"))
cout << "Connect" <<m_ado.GetLastError() <<endl;
3. SQL语句 增删改查
例:增加数据
CString szSQL;
szSQL.Format("INSERT INTO t_admin VALUES('%s' , '%s' )",admin.ID,admin.Pass);
if(m_ado.ExecSQL(szSQL) <= 0) //执行 SQL语句
{
cout << "Admin:Add_ID:" <<m_ado.GetLastError() <<endl;
}
4. 要想知道更多- -。可以自己百度找找,很多资料的说。