数据接口


dataSourceName#

virtual QString  dataSourceName() = 0

数据源名称。系统允许存在多个数据接口插件,每个数据接口插件以数据源名称标识,名称不允许重复,相同名称的数据接口插件只保留一个。

apps#

virtual QList<APP_INFO> apps() = 0

获取表空间(应用)信息。

tables#

virtual QList<TABLE_INFO> tables(int appID) = 0

通过表空间号(应用号)获取表信息。

tables#

virtual QList<TABLE_INFO> tables(const QString& appName) = 0

通过表空间名称(应用名称)获取表信息。

fields#

virtual QList<FIELD_INFO> fields(int appID, int tableID) = 0

通过表空间号(应用号)和表号获取域信息。

fields#

virtual QList<FIELD_INFO> fields(const QString& appName, const QString& tableName) = 0

通过表空间名称(应用名称)和表名获取域信息。

records#

virtual QList<QStringList> records(int appID, int tableID, const QList<int>& fieldIdList, const QString& filter) = 0

通过给定的应用号、表号及域ID号获取表格数据。filter为过滤条件,用来实现表格数据的过滤,类似SQL的where语句。

records#

virtual QList<QStringList> records(const QString& appName, const QString& tableName, const QStringList& fieldNames, const QString& filter) = 0

通过给定的应用名、表名及域名来获取表格数据。filter为过滤条件,用来实现表格数据的过滤,类似SQL的where语句。

records#

virtual QList<QStringList> records(const QString& appName, const QString& selectSql) = 0

通过给定的应用名及SELECT语句来获取数据。

measurementValue#

virtual QString   measurementValue(const QString& keyId) = 0

通过给定的关键字获取指定的量测值。此接口函数会被频繁调用,因此在实现上需尽可能提高性能。

xmlDocument#

virtual QDomDocument  xmlDocument(const QString& keyId) = 0

获取给定的XML文档。

treeDocument#

virtual QDomDocument  treeDocument(const QMap<int, QPair<QString, QString> >& dataSource) = 0

根据给定的信息生成XML文档。映射表中 KEY为层号,从0开始。VALUE为数据对,分别是应用名称及select语句。select检索出的结果集为2列或3列,分别为项目名、项目值、父对象项目值。

setMeasurementValue#

virtual bool    setMeasurementValue(const QString& keyId, const QString& newValue) = 0

设置量测值。

pluginName#

virtual QString pluginName() = 0

插件名称

pluginVersion#

virtual QString pluginVersion() = 0

插件版本号

pluginInfo#

virtual QString pluginInfo() = 0

插件功能说明

接口开发示例

保存如下代码到头文件中,并命名为sgd_data_interface.h。


#ifndef _SGD_DATA_INTERFACE_
#define _SGD_DATA_INTERFACE_

class SGDDataInterface
{
public:
    virtual ~SGDDataInterface() {}
    typedef struct app_info
    {
        int      app_id;                  
        QString  app_name_eng;      
        QString  app_name_chn;      
    } APP_INFO;
    typedef struct table_info
    {
        int     appId;					  
        QString appName;				
        int 	table_id;				
		QString table_name_eng;			
		QString table_name_chn;			         
    } TABLE_INFO;
    typedef struct field_info
    {
        int		table_id;			
        int		field_id;				
        int		field_no;				
        QString field_name_eng;			 
        QString field_name_chn;			
    } FIELD_INFO;
    virtual QString  dataSourceName() = 0;
    virtual QList<APP_INFO>      apps() = 0;
    virtual QList<TABLE_INFO>    tables(int appID) = 0;
    virtual QList<TABLE_INFO>    tables(const QString& appName) = 0;
    virtual QList<FIELD_INFO>    fields(int appID, int tableID) = 0;
    virtual QList<FIELD_INFO>    fields(const QString& appName, const QString& tableName) = 0;
    virtual QList<QStringList>  records(int appID, int tableID, const QList<int>& fieldIdList, const QString& filter) = 0;
    virtual QList<QStringList> records(const QString& appName, const QString& tableName, const QStringList& fieldNames, const QString& filter) = 0;
    virtual QList<QStringList> records(const QString& appName, const QString& selectSql) = 0;
    virtual QString   measurementValue(const QString& keyId) = 0;
    virtual QDomDocument  xmlDocument(const QString& keyId) = 0;
    virtual QDomDocument  treeDocument(const QMap< int, QPair<QString, QString> >& dataSource) = 0;
    virtual bool    setMeasurementValue(const QString& keyId, const QString& newValue) = 0;
    virtual QString pluginName() = 0;
    virtual QString pluginVersion() = 0;
    virtual QString pluginInfo() = 0;
};

Q_DECLARE_INTERFACE(SGDDataInterface, "ePowerGraph.Plugin.SGDDataInterface/1.0");

#endif