VC 数据库连接出错了
发布网友
发布时间:2022-04-12 14:47
我来回答
共2个回答
热心网友
时间:2022-04-12 16:16
上面错误意思 m_sConn不是_Connection的成员
上面的定义错了
//创建连接对象
_ConnectionPtrm_pConn;
m_pConn.CreateInstance(__uuidof(Connection));
//设置连接时间
m_pConn->put_ConnectionTimeout(long(5));
//连接数据库字符串
CString m_sConn;
m_sConn.Format("Provider=SQLOLEDB;Server=%s;DataBase=%s;UID=%s;PWD=%s",g_sDBServerIP, g_sDBName, g_sDBUser, g_sDBPassWord);
//打开连接的数据库
m_pConnectionADO->Open((_bstr_t)sConn, "", "", -1);追问m_sConn.Format("Provider=SQLOLEDB;Server=%s;DataBase=%s;UID=%s;PWD=%s",g_sDBServerIP, g_sDBName, g_sDBUser, g_sDBPassWord);
谢谢~~~括号里面的那些是什么?各自怎么设置啊?
追答g_sDBServerIP是你要连接的数据库所在计算机的IP
g_sDBName是你要连接数据库名
g_sDBUser是访问数据库的用户名
g_sDBPassWord是访问数据库的密码
采用ado连接方式访问数据库,数据库以MS SQL Server为类
热心网友
时间:2022-04-12 17:34
我先帮你把语句解释下,
CLoginSet是C++封装的一个连接数据库的类,至于类的成员函数与成员变量你自己可以查msdn去了解它的功能,先用CLoginSet 定义了一个指针,构造时同时传入m_database的值,m_database它应该是一个数据库类型的指针,包含了数据库的名字,连接字段,开启连接的操作(相当于C#的open()函数)等等,然后就执行sql的语句,(就是你省略的部分),strSQL是一个数据库操作类的一个实例,Rormat是该类的成员函数,作用是保存sql语句。
这么解释你是不是觉得一头雾水,不知道你知不是类和实例的概念,类就是实例的抽象,比如人这个类就是可以吃饭,走路,睡觉,工作,谈恋爱等等,但是每个人的这些属性都不一样,喜欢不一样的饭菜,不同的走路习惯,不同睡姿,不同工作,喜欢不一样的人。
计算机里面的类也是这样,连接类就包括,连接数据库,开启数据库,关闭数据库,但是连接哪个数据库,什么时候开启和关闭都是每个实例都不同的。CloginSet就是一个连接类,只是定义它的类的内容已经被C++封装起来了,你只需要知道接口是什么,怎么用就行,但是你需要实例化一个对象(就是m_recordset)来完成连接特定数据库这一操作,实例化的同时你就告诉它我要连接m_database这个数据库。strSQL是另外一个类实例化出来的对象,完成查询等一系列数据库的操作。
如果你看不懂,肯定几个词不明白,类,对象,实例化,实例,封装,接口,等。等你知道他们的含义,就知道他们之间的道理了。
C++连数据库确实不容易上手,相比较而言建议你用C#语言(vs2005平台)来做数据库的管理系统实验,它更容易上手,也更容易理解类和实例的关系,这些面向对象的思想。追问你说的那些我都清楚、我只是想知道上面哪里出错啦?