第二课、ADOX创建acces数据库实例

来源:互联网 发布:淘宝图片空间协议在哪 编辑:程序博客网 时间:2024/05/29 04:10

1.首先创建一个对话框ADOX;然后在ADOX.cpp的InitInstance()中初始化OLE/COM库。

2.在StaAfx.h中加入

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADO") rename("EOF","EndofFile") 
#import "c:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADOX")

//分别导入ADO和ADOX的动态链接库


3.在对话框头文件中定义两个对象和两个字符串

ADOX::_CatalogPtr m_pCatalog;
ADO::_ConnectionPtr m_pConnection;

CString strPath;
CString strConnection;


4.对话框中创建一个按钮,并且创建按钮响应在响应函数中中添加

BOOL DB=FALSE;//用来判断数据表是否已经创建,以免重复创建
//以下代码表示得到当前可执行文件的绝对路径TCHAR szPathName[MAX_PATH];GetModuleFileName(NULL,szPathName,MAX_PATH);//得到本模块路径strPath=szPathName;int nPos;nPos=strPath.ReverseFind(_T('\\'));//在strPath中找到"\\"strPath=strPath.Left(nPos);strPath+=_T("\\student.mdb");\\得到文件全路径CFileFind ff;strConnection.Format(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source=%s"), strPath);_bstr_t strcnn(strConnection);//数据库连接字符if(ff.FindFile(strPath))////如果没有找到该数据库文件则重建此文件夹{AfxMessageBox(_T("已经存在数据库文件"));//return;}else{HRESULT hr=m_pCatalog.CreateInstance(__uuidof(ADOX::Catalog));//创建CatalogPtr对象实例if(FAILED(hr)){AfxMessageBox(_T("创建ADOX实例失败"));return;}try{m_pCatalog->Create(strcnn);//创建Access文件DB=TRUE;}catch (CMemoryException* e){AfxMessageBox(_T("创建MDB文件失败"));}}try{        m_pConnection.CreateInstance(__uuidof(ADO::Connection));//打开创建的数据库m_pConnection->Open(strcnn,_T(""),_T(""),ADO::adModeUnknown);if(DB){//SQL语句创建一个表CString strSql=_T("CREATE TABLE StudentInfo(student_id varchar(20) NOT NULL,student_name varchar(20) NOT NULL,score int)");//执行语句m_pConnection->Execute((_bstr_t)strSql,NULL,ADO::adCmdText);}}catch (CMemoryException *e){AfxMessageBox(_T("建立数据库失败"),MB_OK|MB_ICONSTOP);}
                                             
0 0