100分相送﹐简单的连接SQL Server2000 Database的方法﹐说得详细的送70分﹐补充的可平分30请各位高手不要怕麻烦尽量说详细点﹐小弟感激不
hzjlf 2004-04-14 11:07:50 业余自学VC++﹐事倍功半﹐一个简单的连接SQL Server2000 Database的方法都不会﹐120分相送﹐说得详细的送70分﹐补充的可平分30请各位高手不要怕麻烦尽量说详细点﹐小弟感激不尽.
以下是我从书上看来的方法﹐但就是连不通﹐
程序名为﹕CYDM
第一部﹕
在YDMS.h中写进 #include <afxdb.h>﹐还有把SQL Server的Database(名为hzjlf)路径设为﹕C﹕\ ,我Create database时并没有设置UserName PassWord﹔
使用的是stdafx.h默认的ADO动态链接库﹕
#import "c:\program files\common files\system\ado\msado15.dll"\
no_namespace\
rename("EOF","adoEOF")
第二部﹕
在CYDMSApp中声明一个指向要创建的ADO对象的智能指针
class CYDMSApp : public CWinApp
{
public:
CYDMSApp();
_ConnectionPtr m_pConnection; //声明一个指向要创建的ADO对象的智能指针
…
}
第三部﹕
使用AfxOleInit()初始化OLE/COM环境库和创建ADO连接
BOOL CYDMSApp::InitInstance()
{
AfxEnableControlContainer();
AfxOleInit();//初始化OLE/COM环境库
m_pConnection.CreateInstance(__uuidof(Connection));//创建ADO连接
try
{
m_pConnection->Open("driver={SQL Server};Server=localhost;DATABASE=hzjlf.mdf;UID=sa;PWD=","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("error﹗请确认数据库是否在当前路径下。");
return FALSE;
}
执行后catch到错误﹕error﹗请确认数据库是否在当前路径下。
注﹕查看ODBC SystemDSN中已有Database hzjlf的存在