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) ==== | ||