📄 geodatabasem.cpp
字号:
// GeoDatabaseM.cpp: implementation of the CGeoDatabaseM class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TestGeoDatabase.h"
#include "GeoDatabaseM.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGeoDatabaseM::CGeoDatabaseM()
{
}
CGeoDatabaseM::~CGeoDatabaseM()
{
}
void CGeoDatabaseM::CreateAccessWorkspace(CString databasename)
{
BSTR pathname,name;
INamePtr ss;
CString temp,temp1;
name=_com_util::ConvertStringToBSTR(databasename);
HRESULT hr = m_ipWorkSpaceFactory.CreateInstance(CLSID_AccessWorkspaceFactory);
if(FAILED(hr))
{
AfxMessageBox("创建失败");
return;
}
IPropertySetPtr pset(CLSID_PropertySet);
IWorkspaceNamePtr pWorkspaceName(CLSID_WorkspaceName);
pWorkspaceName->get_PathName(&pathname);
temp=_com_util::ConvertBSTRToString(pathname);
// AfxMessageBox(temp);
if(pWorkspaceName==NULL)
return ;
hr = m_ipWorkSpaceFactory->Create(pathname,name,pset,NULL,&pWorkspaceName);
if(FAILED(hr))
{
AfxMessageBox("创建失败");
return;
}
/* char s[50];
::GetCurrentDirectory(50,s);
temp.Format("%s",s);
temp1.Format("%s%s%s%s",temp,"\\",databasename,".mdb");
hr = m_ipWorkSpaceFactory->OpenFromFile(_com_util::ConvertStringToBSTR(temp1),0, &m_ipWorkspace);
if(FAILED(hr))
{
AfxMessageBox("打开失败");
return;
}
*/
OpenGeoDatabase();
}
void CGeoDatabaseM::OpenGeoDatabase()
{
BSTR pathname;
CString strPathName;
HRESULT hr =m_ipWorkSpaceFactory.CreateInstance(CLSID_AccessWorkspaceFactory);
if(FAILED(hr))
return;
CFileDialog dlg(TRUE,"*.mdb",NULL, OFN_ALLOWMULTISELECT);
CStringArray arrFileName;
if(dlg.DoModal() == IDOK)
{
POSITION pos = dlg.GetStartPosition();
while(pos != NULL)
{
strPathName = dlg.GetNextPathName(pos);
arrFileName.Add(strPathName);
}
}
else
{
return;
}
pathname=_com_util::ConvertStringToBSTR(strPathName);
hr = m_ipWorkSpaceFactory->OpenFromFile(pathname,0, &m_ipWorkspace);
if(FAILED(hr) || m_ipWorkspace == NULL)//打开成功1111
{
AfxMessageBox("数据库打开失败");
return;
}
IWorkspaceEditPtr pWorkspaceEdit;
pWorkspaceEdit =m_ipWorkspace;
hr=pWorkspaceEdit->StartEditOperation();
m_ipWorkspace=pWorkspaceEdit;
/*
IFeatureDatasetPtr ipFDataset= m_ipWorkspace;
CreateDataset("test", ipFDataset);
IFeatureClassPtr ipFClass=ipFDataset;
m_ipFields==ipFDataset;
CreateFeatureClass("ttUt",ipFClass);
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -