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);
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);
m_pConnection->Open("Provider=SQLOLEDB.1;Database=DBNAME;Data Source=127.0.0.1;","sa","",adModeUnknown);
#5
很可能你新建数据库文件的版本比较新,用给定的驱动无法正确识别、操作。
#6
检查一下sql日志,看看出错的具体原因