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.

 

1. Introduction

2. Format des tables dans SQL Server

3. Définition de tables SQL dans Oxygène

4. Les vues

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.