首页 / 浏览问题 / 组件GIS / 问题详情
无法创建数据源sdb Qt5.9.8+VS2017+Supermap 8C
3EXP 2019年12月05日

使用产品: SuperMap 8C SP1 操作系统:win10 x64
数据类型:  文件型sdb后缀

已经生成了可运行程序,但是在调试中,发生无法创建数据源错误

#include "Gis.h"
#include "commonprogress.h"
#include <iostream>
#include <fstream>
#include "qmapcontrol.h"

//引用所需的Qt库 
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QFileDialog>
#include "translator.h"//引用QMapControl工程中的头文件 
#include "Workspace/UGWorkspace.h"//引用iObjects C++组件中的工作空间UGWorkspace头文件
#include "Map/UGMap.h"//引用iObjects C++组件中的UGMap.h头文件

...................................


/*********************************************************************
**函数名称:newProject
**函数功能:新建工程
**输入参数:工作空间
**输出参数:无
**返回值:bool
*********************************************************************/
bool Gis::newProject(QAxWidget *&workspace,std::vector<std::pair<PriPoint, unsigned> > PointList,std::vector<Point> RegionList,int ProjectionNO)
{
    activeAction->setText(ProName);
    if(!dsCreate(workspace))//创建数据源,在这里里面还没有数据,只是空间里保存着数据的路径
    {
        QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("无法创建数据源!"));
        return false;
    }
	if(!mapCreate())
	{
		QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("无法创建地图控件!"));
		return false;
	}
	if(!mapConnect(workspace))
	{
		QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("地图无法连接到数据源!"));
		return false;
	}
......................................

/*********************************************************************
**函数名称:dsCreate
**函数功能:创建数据源
**输入参数:工作空间
**输出参数:无
**返回值:bool
*********************************************************************/
bool Gis::dsCreate(QAxWidget *&workspace)
{
	DataSource = workspace->querySubObject("CreateDatasource(string, string, seEngineType ,""bool, bool, bool, string)",
		"C:\\tempGis\\LTE" + ProName + ".sdb", ProName, 14, false, false, false, "");
    if(!DataSource)
    {
       return false;
    }
    return true;
}

每次运行到querysubobject返回的都是NULL

1个回答

您好,SuperMap C++组件中并没有querySubObject()这个函数,不清楚您要创建什么。
694EXP 2019年12月05日
...