Outils pour utilisateurs

Outils du site


docs:dev:api:python:quickstart

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
docs:dev:api:python:quickstart [2024/02/27 15:43]
florian [Module db_common]
docs:dev:api:python:quickstart [2024/05/14 15:33] (Version actuelle)
florian
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.
  
-=== Sélectionner ​plusieurs lignes ===+=== Lire plusieurs lignes ===
  
 Nous allons utiliser la fonction ''​dbgenericgetrows()''​ dont la signature est la suivante: Nous allons utiliser la fonction ''​dbgenericgetrows()''​ dont la signature est la suivante:
Ligne 116: Ligne 116:
 </​WRAP>​ </​WRAP>​
  
 +=== Insérer une ligne ===
 +
 +On utilise la fonction ''​dbgenericinsert()''​ dont la signature est la suivante:
 +
 +<code python>
 +def dbgenericinsert(usession,​ itbl, iflds, ivalues, dbtype = None):
 + """​
 + Generic function to insert a record in a system table and get its primary key.
 +
 + > ret = db_common.dbgenericinsert(session,​ "​test",​ ["​fld1",​ "​fld2",​ "​fldx"​],​ [1, 2, '​foo'​])
 + Execute query : insert into test (fld1,​fld2,​fldx) values (1,​2,'​foo'​); ​ ret contains new generated ID
 +
 + :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.
 + """​
 +</​code>​
 +
 +Voici un exemple:
 +
 +<code python>
 +new_rsid = db_common.dbgenericinsert(
 + usession = gses,
 + itbl = "​client",​
 + iflds = ["​CLIENT_NUMERO",​ "​CLIENT_NOM"​],​
 + ivalues = ["​123456",​ "​Client 123456"​]
 +)
 +
 +if new_rsid <= 0:
 + print("​Error code :{}, error msg: {}"​.format(gses.db.db_errorcode,​ gses.db.db_errormsg))
 +
 +</​code>​
 +
 +Il est important de tester le retour afin de s'​assurer que l'​insertion a bien été faite et sinon
 +on peut récupérer le code d'​erreur et le message retourné par la base de données via ''​gses.db.db_errorcode''​ et ''​gses.db.db_errormsg''​
 ==== Classe sql_db ==== ==== Classe sql_db ====
  
Ligne 139: Ligne 184:
 result = gses.db.query("​SELECT * FROM societycache;"​) result = gses.db.query("​SELECT * FROM societycache;"​)
  
-with result: +if result is not None: 
-    for row in result: + with result: 
-        print(row)+ for row in result: 
 + print(row)
 </​code>​ </​code>​
  
Ligne 298: Ligne 344:
 </​code>​ </​code>​
  
-==== Créer ​une nouvelle version ​d'un fichier ====+==== Obtenir les fichiers d'une fiche ==== 
 + 
 +Nous avons besoin ​d'importer le module suivant 
 +<code python>​ 
 +import docpak 
 +</​code>​ 
 + 
 +Nous avons ensuite besoin de deux informations:​ 
 +  * Le nom de la table documentaire. 
 +  * L'​identifiant d'​enregistrement de la fiche. 
 + 
 +<code python>​ 
 +fichiers = docpak.getfilesforrsid(gses,​ "​contratsm",​ 81) 
 + 
 +print(fichiers) 
 +
 +    ('​D:​\\nchp\\var\\nchp\\instance\\EMDOM\\DEFTSA\\00000013\\ed\\4d\\4RGETML2.pdf','​contrat_4201.pdf'​) 
 +
 +</​code>​ 
 + 
 +Le même appel avec l'​option moreinfo=True 
 +<code python>​ 
 +fichiers = docpak.getfilesforrsid(gses,​ "​contratsm",​ 81) 
 + 
 +print(fichiers) 
 + 
 +[('​D:​\\nchp\\var\\nchp\\instance\\EMDOM\\DEFTSA\\00000013\\ed\\4d\\4RGETML2.pdf',​ 
 +  '​contrat_4201.pdf',​  
 +  22864L, #​Identifiant du fichier 
 +  '​ed4d2b8b04b3b1861a450b35210114c75ebae4dc',​ #Empreinte md160 du fichier 
 +  '​application/​pdf',​ #Type mime 
 +  1L #Rang du fichier 
 + ) 
 +
 + 
 +</​code>​ 
 + 
 +===== Scripts COLD ===== 
 + 
 +==== Lire un fichier ​d'​état (scriptfile) ​==== 
  
docs/dev/api/python/quickstart.1709048611.txt.gz · Dernière modification: 2024/02/27 15:43 par florian