本文共 2959 字,大约阅读时间需要 9 分钟。
工作空间中打开的数据源都是在数据源集合下进行管理,数据源(UGDatasource)是存储空间数据的场所。所有的空间数据都是存储于数据源而不是工作空间,任何对空间数据的操作都需要打开或获取数据源,用户可以按照数据的用途,将不同的空间数据保存于数据源中,对这些数据统一进行管理和操作。 对不同类型的数据源,需要不同的空间数据引擎来存储和管理。
一个工作空间可以打开多个数据源,不同的数据源通过不同的别名进行标识,一个工作空间的所有数据源通过一个数据源集合(UGDatasources)进行管理。打开数据源时首先需要明确打开数据源需要的空间数据库引擎类型。创建数据源关键步骤:
1、新建一个工作空间,通过工作空间管理要打开的数据源。 2、通过UGDsConnection对象构建要打开的数据源的连接信息: <1>指定连接信息数据库类型,要打开数据源的空间数据库引擎类型:UDB、Oracle、SQL等。 <2>指定连接信息服务名,如果是文件型数据源,则服务名为数据源文件的路径;如果是数据库型数据源,连接信息为数据库连接信息以及用户名密码。。 5、UGDataSourceManager::CreateDataSource接口获得一个指定空间数据库引擎类型数据源对象,通过该对象的GetConnectionInfo接口,将上述设置的数据源连接信息传入。 6、通过上述UGDataSource对象的Create接口,创建数据源。 7、通过UGWorkpace->UGDataSources.Insert接口,将打开的数据源添加到当前工作空间中的数据源集合中管理。通过工作空间可以保存用户的工作成果。 数据源打开后,可以继续操作其中的数据集等。下面用简单的示例详细介绍一下如何创建文件型、数据库型。
首先:创建数据源前必须有一个工作空间。 SampleRun::SampleRun(void) { //创建工作空间 m_pWorkspace = new UGWorkspace(); }1.创建UDB文件型数据源
void SampleRun::OpenDataSouseUDB() { //清空工作空间中已经存在的数据源 m_pWorkspace->m_DataSources.RemoveAll(); //设置数据源连接信息 UGDsConnection *pCon = new UGDsConnection(); //数据源类型 pCon->m_nType = UGC::UDB; //udb地址 pCon->m_strServer = _U(“F:\TestData\World.udb”);//创建数据源UGDataSource* pDataSource = UGDataSourceManager::CreateDataSource(UGC::UDB);//设置数据源连接信息pDataSource->GetConnectionInfo() = *pCon;//打开数据源pDataSource->Create();//向工作空间中插入一个使用“test”作为别名的数据源m_pWorkspace->m_DataSources.Insert(_U("test"),pDataSource);//释放对象delete pDataSource;pDataSource = NULL;
}
2.创建oracle数据源
注意:对接oracle类型的数据库数据源,需要注意的是,需要在本机安装对应位数的oracle客户端,比如,程序引用的是32位的类库,那就需要安装32位的oracle客户端,如果使用的是64位的类库,那就需要安装64位的oracle客户端。 void SampleRun::OpenDataSouseOrcale() { //清空工作空间中已经存在的数据源 m_pWorkspace->m_DataSources.RemoveAll(); //设置数据源连接信息 UGDsConnection *pCon = new UGDsConnection(); //数据源类型 pCon->m_nType = UGC::Oracle; //设置数据库名称 pCon->m_strDatabase = _U(""); //设置用户名 pCon->m_strUser = _U(""); //设置密码 pCon->m_strPassword = _U("");//创建数据源//打开 Oracle 数据源时,那么用户必须安装oracle客户端,建立数据库连接还要有对应的空间数据库引擎(SDX+ for oracle)UGDataSource* pDataSource = UGDataSourceManager::CreateDataSource(UGC::Oracle);//设置数据源连接信息pDataSource->GetConnectionInfo() = *pCon;//打开数据源pDataSource->Create();//向工作空间中添加一个使用“test”作为别名的数据源m_pWorkspace->m_DataSources.Insert(_U("test"),pDataSource);//释放对象delete pCon;pCon = NULL;
}
3.打开数据源关键步骤:
打开数据源和创建数据源不一样的地方就是创建用的是Create,而打开用的是UGDataSource对象的Open接口,来打开数据源。下面通过简单的一个示例来介绍如何打开本地已经存在的udb数据源。Oracle同理,就不再单独写示例了。
void SampleRun::OpenDataSouseUDB() { //清空工作空间中已经存在的数据源 m_pWorkspace->m_DataSources.RemoveAll(); //设置数据源连接信息 UGDsConnection *pCon = new UGDsConnection(); //数据源类型 pCon->m_nType = UGC::UDB; //udb地址 pCon->m_strServer = _U(“F:\TestData\World.udb”);//创建数据源UGDataSource* pDataSource = UGDataSourceManager::CreateDataSource(UGC::UDB);//设置数据源连接信息pDataSource->GetConnectionInfo() = *pCon;//打开数据源pDataSource->Open();//向工作空间中插入一个使用“test”作为别名的数据源m_pWorkspace->m_DataSources.Insert(_U("test"),pDataSource);//释放对象delete pDataSource;pDataSource = NULL;
}
4.关闭数据源
关闭数据源操作将从工作空间的数据源集合中移除被关闭的数据源。 { //移除数据源; m_pWorkspace->m_DataSources.RemoveAt(0); }转载地址:http://wspxi.baihongyu.com/