Accéder à une table ou vue sur SQL Server
Document d'origine : "Composant d'accès SQL Server - Annexe" : aller plus loin dans l'utilisation du composant d'accès SQL Server en utilisant des tables Oxygène sur SQL Server de février 2008.
2. Format des tables dans SQL Server
3. Définition de tables SQL dans Oxygène
1. Introduction
Au-delà des utilitaires de conversion de données Oxygène / SQL, il existe dans Oxygène une possibilité de manipuler des tables basées sur SQL Server. Cette fonctionnalité, qui fût à l'origine de la version Oxygène pour SQL Server, peut permettre d'interroger des tables ou des vues SQL depuis le L4G.
2. Format des tables dans SQL Server
Les tables utilisées depuis Oxygène doivent avoir un certain formalisme :
Le premier champ doit être un champ de type « Compteur » appelé OX_COMPTEUR de type int. Si un champ porte le nom NOMTABLE_IDENT, il sera pris pour un champ IDENT Oxygène.
Les autres champs doivent pouvoir être lus dans Oxygène, donc seul un sous ensemble de types est supporté :
Oxygène |
SQL Server |
Entier |
SmallInt |
Chaine |
VarChar |
Simple |
Real |
Double |
Float |
Monnaie |
Float |
Date |
Datetime |
Pour plus de simplicité, on peut créer la table dans Oxygène puis la faire créer dans SQL Serveur avec l'utilitaire de création de table.
Exemple de requête de création de table :
CREATE TABLE
[TEST4] (
OX_COMPTEUR int NOT
NULL IDENTITY ,
TEST4_IDENT varchar (11)
NULL DEFAULT '' ,
CHAMP1 smallint NULL
DEFAULT 0 ,
CHAMP2 real NULL
DEFAULT 0 ,
CHAMP3 float NULL
DEFAULT 0 ,
CONSTRAINT PK_TEST4
PRIMARY KEY (OX_COMPTEUR))
/** Ajout des index **/
CREATE NONCLUSTERED INDEX IDX_TEST4_IDENT
ON [TEST4]
( TEST4_IDENT,OX_COMPTEUR )
CREATE NONCLUSTERED INDEX IDX_TEST4_CODE
ON [TEST4]
( CODE,OX_COMPTEUR )
3. Définition de tables SQL dans Oxygène
A moins que la table SQL ait été créée à partir d'une table Oxygène comme suggéré ci-dessus, il faut créer une table Oxygène contenant les mêmes champs que la table SQL.
Créer une table dans Oxygène de même nom que la table SQL.
Sélectionner MS SQLServer pour la Localisation Courante.
Ajouter les champs selon le tableau présenté au chapitre précédent
Note : si la table SQL a été créée à partir d'une table Oxygène, il suffit de basculer la localisation de la table vers SQL Server.
Si des données sont saisies dans la tables SQL, celles-ci pourront être lues depuis Oxygène, par exemple en saisie directe sur la table :
SQL Server :
Oxygène :
Si on saisit de nouvelles données dans Oxygène, celles-ci seront ajoutées à la table SQL Server.
4. Les vues
Afin de présenter les données SQL server dans un format lisible par Oxygène, il peut être utile de passer par une vue :
CREATE VIEW
VTEST5 AS
SELECT
TEST5.CPT AS OX_COMPTEUR,
IDENT AS VTEST5_IDENT,
CONVERT(smallint,
TEST5.CHAMP1) AS CHAMP1,
TEST5.CHAMP2,
TEST5.CHAMP3
FROM dbo.TEST5
On créée ensuite la table sous Oxygène
Sur la première page, on précise « vue SQL » :
Un bouton "Définir la vue" permet de définir la liaison de chaque champ.
La table "vue" pourra alors être utilisée comme une table normale.