使用MFC+ADO+SQL2008(Access)如何动态创建数据库和表
来源:互联网 发布:造价师工程师网络教育 编辑:程序博客网 时间:2024/05/20 11:52
SQL要动态创建数据库,MFC中编程实现方法是:首先连接master数据库,然后查询sysdatabases表中是否存在需要创建的数据库名,如果有则不用创建,否则进行新数据库的创建,新数据库的创建直接执行SQL语句即可。例子代码如下:
void CMethodTestDlg::OnBnClickedCtreateDatabase()
{
// TODO: 在此添加控件通知处理程序代码
CAdoConnection connect;
CAdoRecordSet recordSet;
connect.Disconnect();
if (connect.Connect(GetDatabaseConnectionStringMaster()))
{
LogMessage("连接系统数据库master成功");
m_DataBaseName="TestData";
UpdateData(FALSE);
//检测数据库是否存在 存在则不创建。否则创建新数据库
recordSet.SetAdoConnection(&connect);
CString strSQL;
_variant_t RecordsAffected;
char strcon[255];
int tempSectionID;
UpdateData(TRUE);
strSQL.Format("select * from sysdatabases where name='%s'",m_DataBaseName);
recordSet.Open(strSQL);
if (recordSet.GetRecordCount()==0)
{
LogMessage("此数据库不存在,此需要新创建此数据库");
//创建新数据库 TestCCIM
strSQL=CString("create database TestData")+
CString(" on")+
CString("(")+
CString("name='TestData_data',")+
CString("filename='D:\\DataBase\\TestData_data.mdf',")+
CString("size=10,")+
CString("filegrowth=20%")+
CString(")")+
CString("log on")+
CString("(")+
CString("name='TestData_log',")+
CString("filename='D:\\DataBase\\TestData_log.ldf',")+
CString("size=3,")+
CString("maxsize=20,")+
CString("filegrowth=10%")+
CString(")");
sprintf(strcon,"%s",strSQL);
LogMessage(strcon);
connect.GetConnection()->Execute(strcon,&RecordsAffected,adCmdText);
}
else
{
LogMessage("此数据库存在,则不需要进行创建");
}
}
else
{
LogMessage("连接系统master数据库失败");
}
}
上述就完成了数据库的新建过程,如果要对新的数据库进行表的创建,则需要重新连接新建的数据库,然后执行SQL语句创建相应的表。
后续会继续学习如何动态创建access数据库,以及使用
下面动态创建access数据库的方法:
#import "C:/Program Files/Common Files/system/ado/msadox.dll"
void CMethodTestDlg::OnBnClickedCreateAccess()
{
// TODO: 在此添加控件通知处理程序代码
CString strcnn = "Provider='Microsoft.JET.OLEDB.4.0';Data source =C:\\Demo.mdb";
HRESULT hr = S_OK;
// CString strcnn(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source = "));
// strcnn+=Path;
try
{
ADOX::_CatalogPtr m_pCatalog = NULL;
hr = m_pCatalog.CreateInstance(__uuidof (ADOX::Catalog));
if (FAILED(hr))
{
_com_issue_error(hr);
}
else
{
m_pCatalog->Create(_bstr_t(strcnn)); //Create MDB
}
m_result_str="创建Access数据库成功";
UpdateData(FALSE);
}
catch(_com_error &e)
{
AfxMessageBox(_T(e.Description()));
}
}
- 使用MFC+ADO+SQL2008(Access)如何动态创建数据库和表
- MFC+ADO+ACCESS创建数据库
- MFC+ADO+ACCESS自动创建数据库
- vc+ado动态创建access数据库
- vc+ado动态创建access数据库
- vc+ado动态创建access数据库
- VC+ADO动态创建Access数据库
- Vc++中Ado动态创建access数据库
- MFC使用ADO访问ACCESS数据库
- MFC+Access数据库(ADO数据库编程)
- MFC连接SQL2008(ADO)
- 如何动态创建ACCESS数据库
- 结合ADO、ADOX和MFC的文档/视图/框架架构创建和打开Access数据库
- 结合ADO、ADOX和MFC的文档/视图/框架架构创建和打开Access数据库
- ADO创建ACCESS数据库的表(3)
- 【MFC】ADO数据库操纵access
- MFC 和 数据库Access 用 Ado类 操作
- 使用ADOX创建Access数据库和表
- 安装Weblogic时报Exception in thread "winRegistry" java.lang.UnsatisfiedLinkError
- ArcGIS Server 10 in Windows7中的个别有关问题
- 图像处理中频域(Fourier)的应用总结
- SQL语句总结杂记【收集中】
- windbg小工具umdh查找内存泄露
- 使用MFC+ADO+SQL2008(Access)如何动态创建数据库和表
- Java开发中的23种设计模式之二十二:中介者模式(Mediator)
- final关键字
- SQL报表 - Tablix分页可重复表头及垂直滚动时浮动表头
- Javascript 垂直滑动伸缩菜单
- 数据结构——排序
- JS实现模拟新浪微博和腾讯微博首页滚动
- Java开发中的23种设计模式之二十三:解释器模式(Interpreter)
- linux下的split 命令(将一个大文件根据行数平均分成若干个小文件)