Ci-dessous, les différences entre deux révisions de la page.
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:44] florian |
docs:dev:api:python:quickstart [2024/05/14 15:33] (Version actuelle) florian |
||
---|---|---|---|
Ligne 118: | Ligne 118: | ||
=== Insérer une ligne === | === 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 142: | 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 301: | 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) ==== | ||