Table Vue

Les ressources de table nommée peuvent être définies par une vue (requête de données) via une instruction SQL MI portant sur une table. Cette procédure utilise MapinfoSQLDataSourceDefinition pour définir la requête SQL et le nom de la table utilisée dans la requête. Vous pouvez définir une table Vue de deux manières : soit vous définissez la définition de la table et de la requête, soit vous indiquez une table nommée existante et la requête.

Les vues nommées sont basées sur des tables nommées et elles doivent publier une clé primaire si la table nommée a une clé primaire. Voici les conditions préalables à la publication d'une clé primaire :
  • La clause Select doit avoir une colonne de clé primaire
  • La requête Simple doit être sans Join
  • La table nommée doit avoir des métadonnées de clé primaire

Exemple

Dans l'exemple suivant, la table utilisée dans la requête (une source de données de fichier TAB nommée World123) est définie, puis la requête (nommée View123) est définie. Lorsque vous appelez cette table Vue nommée, le nom de MapinfoSQLDataSourceDefinition est utilisé (View123).

Dans cet exemple, la définition utilise le jeton suivant :

  • @filedir@ répertoire du système de fichiers sur lequel figure le fichier de table


<?xml version="1.0" encoding="UTF-8"?>
<NamedDataSourceDefinition version="MXP_WorkSpace_1_5" xmlns="http://www.mapinfo.com/mxp">
	<ConnectionSet>
        <NamedConnectionRef resourceID="/Samples/NamedConnections/SampleData">
            <ConnectionName>SampleData</ConnectionName>
        </NamedConnectionRef>
    </ConnectionSet>
	<DataSourceDefinitionSet>
		<TABFileDataSourceDefinition id="id2" readOnly="false">
			<DataSourceName>World123</DataSourceName>
			<FileName>@filedir@/world.tab</FileName>
		</TABFileDataSourceDefinition>
		<MapinfoSQLDataSourceDefinition id="id3" readOnly="false">
			<DataSourceName>View123</DataSourceName>
			<MapinfoSQLQuery>
				<Query>SELECT Country,Capital,Pop_1994,Pop_Male,Pop_Fem, Obj FROM World123 WHERE Country IN ('India','Canada','Vietnam','Brazil','China','Japan')</Query>
			</MapinfoSQLQuery>
		</MapinfoSQLDataSourceDefinition>
	</DataSourceDefinitionSet>
	<DataSourceRef ref="id3"/>
</NamedDataSourceDefinition>	

Dans l'exemple suivant, la table utilisée dans la requête est une table nommée existante déjà définie dans le référentiel. Vous devez indiquer la table nommée via une référence NamedDataSourceDefinitionRef au chemin d'accès complet de la table au sein du référentiel. La requête est ensuite définie via cette table nommée (vous devez également indiquer le chemin d'accès complet à la table nommée). Lorsque vous appelez cette table Vue nommée, le nom de MapinfoSQLDataSourceDefinition est utilisé (View123).

<?xml version="1.0" encoding="UTF-8"?>
<NamedDataSourceDefinition version="MXP_NamedResource_1_5" xmlns="http://www.mapinfo.com/mxp" >
	<ConnectionSet>
        <NamedConnectionRef resourceID="/Samples/NamedConnections/SampleData">
            <ConnectionName>SampleData</ConnectionName>
        </NamedConnectionRef>
    </ConnectionSet>
	<DataSourceDefinitionSet>
		<NamedDataSourceDefinitionRef id="id0" resourceID="/NamedTables/WorldTable"/>
		<MapinfoSQLDataSourceDefinition id="id3" readOnly="false">
			<DataSourceName>View123</DataSourceName>
			<MapinfoSQLQuery>
				<Query>SELECT * from "/NamedTables/WorldTable"</Query>
			</MapinfoSQLQuery>
		</MapinfoSQLDataSourceDefinition>
	</DataSourceDefinitionSet>
	<DataSourceRef ref="id3"/>
</NamedDataSourceDefinition>