Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| docs:dev:api:python:quickstart [2023/04/20 11:44] – florian | docs:dev:api:python:quickstart [2024/05/14 15:33] (Version actuelle) – florian | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Quickstart ====== | + | ====== Quickstart |
| Ligne 8: | Ligne 8: | ||
| Le module db_common propose des fonction utilitaires pour effectuer des requêtes sur la base de données. | Le module db_common propose des fonction utilitaires pour effectuer des requêtes sur la base de données. | ||
| + | === Lire plusieurs lignes === | ||
| + | |||
| + | Nous allons utiliser la fonction '' | ||
| + | |||
| + | <code python> | ||
| + | def dbgenericgetrows(usession, | ||
| + | """ | ||
| + | Return rows from a table. Select all the fields. | ||
| + | |||
| + | :type usession: session | ||
| + | :param usession: NCHP Session | ||
| + | :type itbl: string | ||
| + | :param itbl: table to fetch | ||
| + | :type icond : list | ||
| + | :param icond: list of conditions | ||
| + | |||
| + | :rtype: list | ||
| + | :return: A list of row, each row described by a dictionnary. | ||
| + | """ | ||
| + | </ | ||
| + | |||
| + | Exemple d' | ||
| + | |||
| + | <code python> | ||
| + | rows = db_common.dbgenericgetrows( | ||
| + | usession = gses, | ||
| + | itbl = " | ||
| + | ) | ||
| + | |||
| + | pprint.pprint(rows) | ||
| + | >>> | ||
| + | [{ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }, { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }, { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | ] | ||
| + | |||
| + | </ | ||
| + | |||
| + | Un exemple maintenant en ajoutant des conditions | ||
| + | |||
| + | <code python> | ||
| + | rows = db_common.dbgenericgetrows( | ||
| + | usession = gses, | ||
| + | itbl = " | ||
| + | icond = db_common.buildcondandor( | ||
| + | tbl = " | ||
| + | fields = [" | ||
| + | values = [" | ||
| + | ) | ||
| + | ) | ||
| + | |||
| + | pprint.pprint(rows) | ||
| + | >>> | ||
| + | [{ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | La fonction '' | ||
| + | ne gère que des conditions utilisant le même opérateur qui par défaut est l' | ||
| + | </ | ||
| + | |||
| + | === Insérer une ligne === | ||
| + | |||
| + | On utilise la fonction '' | ||
| + | |||
| + | <code python> | ||
| + | def dbgenericinsert(usession, | ||
| + | """ | ||
| + | Generic function to insert a record in a system table and get its primary key. | ||
| + | |||
| + | > ret = db_common.dbgenericinsert(session, | ||
| + | Execute query : insert into test (fld1, | ||
| + | |||
| + | :type usession: session | ||
| + | :param usession: NCHP Session | ||
| + | :type itbl: string | ||
| + | :param itbl: table to fetch | ||
| + | :type iflds: list | ||
| + | :param iflds: fields to put values in | ||
| + | :type ivalues: list | ||
| + | :param ivalues: Values to put in fields | ||
| + | :type dbtype: string | ||
| + | :param dbtype: database type | ||
| + | |||
| + | :rtype: long | ||
| + | :return: new ID of record, or 0 if insert failed. | ||
| + | """ | ||
| + | </ | ||
| + | |||
| + | Voici un exemple: | ||
| + | |||
| + | <code python> | ||
| + | new_rsid = db_common.dbgenericinsert( | ||
| + | usession = gses, | ||
| + | itbl = " | ||
| + | iflds = [" | ||
| + | ivalues = [" | ||
| + | ) | ||
| + | |||
| + | if new_rsid <= 0: | ||
| + | print(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | Il est important de tester le retour afin de s' | ||
| + | on peut récupérer le code d' | ||
| ==== Classe sql_db ==== | ==== Classe sql_db ==== | ||
| Ligne 31: | Ligne 184: | ||
| result = gses.db.query(" | result = gses.db.query(" | ||
| - | with result: | + | if result is not None: |
| - | for row in result: | + | with result: |
| - | print(row) | + | for row in result: |
| + | print(row) | ||
| </ | </ | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | L' | + | L' |
| Pour les versions antérieures voir [[docs: | Pour les versions antérieures voir [[docs: | ||
| Ligne 76: | Ligne 230: | ||
| '' | '' | ||
| - | ===== Journaliser les activiés | + | ===== Journaliser les activités |
| Dans EzGED un certain nombre d' | Dans EzGED un certain nombre d' | ||
| Ligne 101: | Ligne 255: | ||
| ===== Travaux ===== | ===== Travaux ===== | ||
| - | ===== Créer un travail EzGED ===== | + | ==== Créer un travail EzGED ==== |
| - | ==== Script d' | + | === Script d' |
| La logique d' | La logique d' | ||
| Ligne 124: | Ligne 278: | ||
| libjobdext.jobstateupdate_percent(gses, | libjobdext.jobstateupdate_percent(gses, | ||
| </ | </ | ||
| + | |||
| + | === Lecture/ | ||
| + | |||
| + | Les fichiers de travail sont les fichiers qu' | ||
| + | nécessaires à la réalisation du script et donc de son travail. | ||
| + | |||
| + | Parmi les principaux on retrouve '' | ||
| + | |||
| + | Ces fichiers sont des fichiers textes contenant des données structurées en colonnes de longueur fixe. | ||
| + | |||
| + | Pour faciliter leur manipulation on utilise le module '' | ||
| Ligne 178: | Ligne 343: | ||
| docpakid = docpaknew(gses, | docpakid = docpaknew(gses, | ||
| </ | </ | ||
| + | |||
| + | ==== Obtenir les fichiers d'une fiche ==== | ||
| + | |||
| + | Nous avons besoin d' | ||
| + | <code python> | ||
| + | import docpak | ||
| + | </ | ||
| + | |||
| + | Nous avons ensuite besoin de deux informations: | ||
| + | * Le nom de la table documentaire. | ||
| + | * L' | ||
| + | |||
| + | <code python> | ||
| + | fichiers = docpak.getfilesforrsid(gses, | ||
| + | |||
| + | print(fichiers) | ||
| + | [ | ||
| + | (' | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Le même appel avec l' | ||
| + | <code python> | ||
| + | fichiers = docpak.getfilesforrsid(gses, | ||
| + | |||
| + | print(fichiers) | ||
| + | |||
| + | [(' | ||
| + | ' | ||
| + | 22864L, # | ||
| + | ' | ||
| + | ' | ||
| + | 1L #Rang du fichier | ||
| + | ) | ||
| + | ] | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Scripts COLD ===== | ||
| + | |||
| + | ==== Lire un fichier d' | ||
| + | |||
| + | |||