⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geodatabasem.cpp

📁 arcgis geodatabase Access 数据库创建
💻 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 + -