问了半个月了,来者有分,ado连接数据库!!!

时间:2022-09-12 07:29:54
_ConnectionPtr m_pConnection;
AfxEnableControlContainer();

AfxOleInit();

m_pConnection.CreateInstance("ADODB.Connection");

/******************连接数据库********************/
try
{
m_pConnection->ConnectionTimeout = 8;

//连接SQL SERVER
m_pConnection->Open("Driver=SQL Server;Database=master;Server=127.0.0.1;UID=sa;PWD=;","","",adModeUnknown);
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox("数据库连接失败!");
return ;


_RecordsetPtr m_pRecordset;
DWORD m_nFileLen;
char *m_pBMPBuffer;

m_pRecordset.CreateInstance("ADODB.Recordset");

CString str = "SELECT * FROM  table1";
HRESULT hr = m_pRecordset->Open((_variant_t)str,_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);

上面这句话如果操作master数据库中table1表,一点问题没有。
但是如果是自己建立一个数据库(名字huntbook)并且建立同样的数据表table1,将上面代码改为Database=huntbook运行。就会有问题?
最后一行有错误,为什么啊??

6 个解决方案

#1


什么错误?具体点

#2


Recordset15::Open函数出错误!!!!

#3


自己顶!!

#4


改成这一句试试
m_pConnection->Open("Provider=SQLOLEDB.1;Database=DBNAME;Data Source=127.0.0.1;","sa","",adModeUnknown);

#5


很可能你新建数据库文件的版本比较新,用给定的驱动无法正确识别、操作。

#6


检查一下sql日志,看看出错的具体原因

#1


什么错误?具体点

#2


Recordset15::Open函数出错误!!!!

#3


自己顶!!

#4


改成这一句试试
m_pConnection->Open("Provider=SQLOLEDB.1;Database=DBNAME;Data Source=127.0.0.1;","sa","",adModeUnknown);

#5


很可能你新建数据库文件的版本比较新,用给定的驱动无法正确识别、操作。

#6


检查一下sql日志,看看出错的具体原因