Présentation de javascript appliqué des DataSets Table des

publicité
Présentation de javascript appliqué des DataSets
Table des matières
Présentation de javascript appliqué des DataSets.................................................................................1
Console.................................................................................................................................................1
Exemples basiques de manipulation des DataSets..........................................................................2
Création d'un DataSet, d'une DataTable, et de colonnes.............................................................2
Manipulation des données...........................................................................................................3
Sérialisation et schémas...................................................................................................................4
Chargement de données à partir d'une base SQL............................................................................5
Pilote...........................................................................................................................................5
Chargement des données.............................................................................................................5
Console
La console permet de vérifier le fonctionnement de certains scripts ou de consulter des DataSets.
La zone de gauche affiche le schéma du DataSet actuellement en mémoire de la console, la zone
d'édition permet l'écriture de code javascript et/ou de requêtes SQL qui s'appliquent au DataSet en
cours. La zone du bas affiche le résultat des « print » et la valeur de retour des scripts, ou le résultat
des requêtes.
Exemples basiques de manipulation des DataSets
Création d'un DataSet, d'une DataTable, et de colonnes
Il est possible de créer des DataSets en mémoire via du JavaScript ou du code java compilé.
L'avantage du javascript étant la portabilité, la facilité d'écriture et de déploiement de traitements
courts et simples (comme des tests, des extractions, des mises à jour en masse de fichiers, etc.)
//Charge les API de base de manipulation des DataSets
jdatasetfx.load(this);
//Création d'un DataSet vide qui a pour nom DataSetTests
var dataset = new DataSet("DataSetTests");
//Ajout d'une table « test »
//le nommage de la table est déduit du nom de la propriété
dataset.test = new DataTable();
println(dataset.test.name); //afiche "test"
Définition des colonnes d'une table
dataset.test.addColumn("NUMBER", INT);
dataset.test.addColumn("VALUE");
dataset.test.addColumn("TEXT", STRING);
dataset.test.getColumns().get("TEXT").setMaxLength(5);
Ajout d'une clé primaire, qui en plus de garantir l'intégrité des données, ajoute des indexs
dataset.test.setPrimaryKey("NUMBER");
Manipulation des données
A présent, il est possible d'insérer de nouvelles lignes dans la table
var row = dataset.test.newRow();
row.NUMBER = 10;
row.VALUE = "hello world !";
dataset.test.add(row);
L'accès aux propriétés peut se faire de trois manières
println(row.VALUE); //Propriété javascript
println(row["VALUE"]); //Syntaxe tableau indexé
println(row[1]); //"1" étant l'indice de la colonne dans la table
Les exceptions sont prises en compte
try {
dataset.test.addRow([10, "fail", null]);
} catch (e) {
println("clé primaire : " + e); //Erreur de clé primaire !
}
A présent nous pouvons interroger notre DataSet
//La sélection étant un tableau de DataRow extrait de la DataTable
var selection = dataset.test.select("NUMBER > 50 AND NUMBER <= 75");
//Effectue une copie de la table dans un tableau
var selection = dataset.test.select();
Il est également possible d'effectuer des requêtes complètes sur le DataSet via le moteur SQL
intégré
var
var
var
var
sql = "SELECT VALUE + ' test', NUMBER FROM test WHERE NUMBER >= 50";
parser = new SqlQueryParser(dataset);
query = parser.parse(sql);
reader = query.executeReader();
Une fois le DataReader obtenu, on peut effectuer une lecture classique :
while (reader.read()) {
println(reader.NUMBER); //syntaxes de propriétés javascript
println(reader["NUMBER"]); //syntaxes de tableau indexé
println(reader[1]); //ou avec des indices de colonnes
}
Sérialisation et schémas
Nous pouvons enregistrer le schéma de notre DataSet dans un fichier.
//Le schéma est au format XSD
writeSchema(new XmlFormat(), dataset, "C:/test/schema.xml");
Le fichier obtenu respectant la présentation des schémas de DataSets générés par Visual Studio.
Nous pouvons créer un DataSet en mémoire à partir d'un schéma quelconque
//Le schéma est toujours au format XSD et a été généré par Visual Studio
var dataset = loadSchema(new XmlFormat(), "C:/test/OPTElectricite.xsd");
//Si l'on souhaite créer un nouveau fichier de schéma
writeSchema(new XmlFormat(), dataset "C:/test/Copie de OPTElectricite.xsd");
Après avoir obtenu un schéma, nous pouvons charger des données. Le fichier de données chargé
respecte le schéma XSD qui a servi à l'initialisation du DataSet.
//Lecture des données
readData(new XmlFormat(), dataset, "C:/test/verif.xml")
//Ecriture des données
writeData(new XmlFormat(), dataset, "C:/test/verif.xml")
Lorsqu'il s'agit de sérialiser les données, il est également possible d'engistrer en CSV, ou tout autre
format défini par le développeur
readData(new CsvFormat(), dataset, "C:/test/verif.csv")
//L'API sait traiter en natif des formats csv avec préfixes de colonnes
readData(new CsvFormat(CsvFormat.COLUMN_NAME), dataset, "C:/test/verif.csv")
//Si l'on enregitre avec des indices de colonnes en préfixe
writeData(new CsvFormat(CsvFormat.COLUMN_INDEX), dataset, "C:/test/verif.csv")
On peut également charger un schéma ou des données à partir d'un webservice
var dataset = loadSchema(new XmlFormat(),
"http://localhost/OPTElectricite.xsd");
readData(new XmlFormat(), dataset, "http://localhost/verif.xml")
Chargement de données à partir d'une base SQL
Pilote
En premier lieu, il est nécessaire de charger un pilote de base de données JDBC afin de pouvoir se
connecter à la base. FILE étant le chemin du pilote SQL à charger (local ou via un webservice),
DRIVER étant le nom du driver tel que défini dans la documentation
(com.microsoft.sqlserver.jdbc.SQLServerDriver pour SQL Server par exemple)
driverManager.loadDriver(FILE, DRIVER);
Cette étape est inutile si le Driver est déjà chargé dans le programme (typiquement le cas du driver
ODBC).
Chargement des données
A présent que le pilote de base de données est chargé, nous pouvons charger notre DataSet
var dataset = new DataSet("dataset_base_sql");
dataset.add(loadTable(URL, "INTERV", "SELECT * FROM INTERV"));
dataset.add(loadTable(URL, "VERIF", "SELECT * FROM VERIF WITH (NOLOCK)"));
Notre DataSet chargé, nous pouvons maintenant enregistrer son shéma et/ou ses données pour une
lecture future.
writeSchema(new XmlFormat(), dataset "C:/test/Copie de OPTElectricite.xsd");
writeData(new CsvFormat(CsvFormat.COLUMN_INDEX), dataset, "C:/test/verif.csv")
Téléchargement