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 | ||
dev:api:python:db_common [2017/08/28 13:49] florian |
dev:api:python:db_common [2023/06/13 13:46] (Version actuelle) florian [Exemples] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
===== dbgenericselectindict ===== | ===== dbgenericselectindict ===== | ||
- | <code python> | + | generic function to select multiple records and return them in a dict |
- | dbgenericselectindict(usession, | + | |
- | itbl, | + | >>> ret=db_common.dbgenericselectindict(session,"test","test_id",["fld1","fld2","fldx"],"fld","A","fld2","D","fld2",2,">") |
- | ifldkey, | + | Execute query : select fld1,fld2,fldx,test_id from test where fld2 > 2 order by fldx ASC, fld2 DESC; and put results in a dict |
- | iflds, | + | >>> print ret |
- | iorder, | + | [8 :["fld1" : "foo", "fld2" : 4, "fldx" : "bar"],9 :["fld1" : "foox", "fld2" : 3, "fldx" : "cbar"],....] keys 8,9 are test_id values |
- | isens="A", | + | |
- | iorderother="", | + | ==== Paramètres ==== |
- | isensother="A", | + | |
- | ifldcond="", | + | |
- | ifldcondval="", | + | |
- | ifldop="=", | + | |
- | ifldcond2="", | + | |
- | ifldcondval2="", | + | |
- | ifldop2="=", | + | |
- | dbtype=None, | + | |
- | ifldcond3="", | + | |
- | ifldcondval3="", | + | |
- | ifldop3="=") | + | |
- | </code> | + | |
- | === Paramètres === | + | |
^ Paramètre ^ Type ^ Default ^ Description ^ | ^ Paramètre ^ Type ^ Default ^ Description ^ | ||
Ligne 44: | Ligne 31: | ||
| **ifldcondval3** | | | | | | **ifldcondval3** | | | | | ||
| **ifldop3** | | = | | | | **ifldop3** | | = | | | ||
+ | |||
+ | |||
+ | ==== Retour ==== | ||
+ | |||
+ | ^ Type de retour ^ Valeur de retour ^ | ||
+ | | dict | dictionary containing recordset | | ||
+ | |||
+ | {{:wiki:icons:info.png}} Ne vous fiez pas aux paramètres d'ordre car le résultat étant un dictionnaire, l'ordre des clés/valeurs dans un dictionnaire en Python est arbitraire (et vous ne pourrez pas le connaitre). | ||
+ | |||
+ | ==== Exemples ==== | ||
+ | |||
+ | Par exemple si l'on veut sélectionner tout les enregistrements de la table facture sans spécifier d'ordre ou de conditions: | ||
+ | <code python> | ||
+ | vdict = db_common.dbgenericselectindict(gses, "facture", "FACTURE_ID", ["FACTURE_NUM","FACTURE_DATE","FACTURE_TTC"]) | ||
+ | print vdict | ||
+ | </code> | ||
+ | |||
+ | On obtiendra | ||
+ | <code python> | ||
+ | {"7":{"FACTURE_NUM":"F001013",FACTURE_DATE:"2017-08-28 00:00:00","FACTURE_TTC":2450.30}, | ||
+ | "8":{"FACTURE_NUM":"F001027",FACTURE_DATE:"2017-08-31 00:00:00","FACTURE_TTC":1370.0}} | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== dbgenericselect ===== | ||
+ | |||
+ | generic function to fetch record in a system table on a primary key | ||
+ | |||
+ | >>> ret=db_common.dbgenericselect(session,"test",32,"fld1","fld2","fldx") | ||
+ | Execute query : select fld1,fld2,fldx from test where test_id=32; | ||
+ | |||
+ | ==== Paramètres ==== | ||
+ | |||
+ | ^ Paramètre ^ Type ^ Default ^ Description ^ | ||
+ | | **usession** | session | None | NCHP Session | | ||
+ | | **itbl** | string | None | table to fetch | | ||
+ | | **iidval** | long | None | Primary Key of record to get | | ||
+ | | **itblfld** | string multiple | None | fields to get | | ||
+ | |||
+ | |||
+ | ==== Retour ==== | ||
+ | |||
+ | ^ Type de retour ^ Valeur de retour ^ | ||
+ | | list,description | row selected , description of fields (datatype etc) : see description in db modules (db_mysql,db_postgres etc....) | | ||
+ | |||
+ | ===== dbgenericgetvalue ===== | ||
+ | |||
+ | Retourne la valeur de la colonne souhaitée du premier enregistrement qui satisfait les filtres. | ||
+ | |||
+ | ==== Paramètres ==== | ||
+ | |||
+ | ^ Paramètre ^ Type ^ Default ^ Description ^ | ||
+ | | **usession** | session | None | NCHP Session | | ||
+ | | **itbl** | string | None | La table source | | ||
+ | | **ifldkey** | string | None | Nom de la première colonne filtre (obligatoire) | | ||
+ | | **ifldkeyval** | value | None | Valeur du premier filtre | | ||
+ | | **ifldtoreturn** | string | None | Nom de la colonne dont on veut obtenir la valeur | | ||
+ | | **ifldkey2** | string | | Nom de la deuxième colonne filtre | | ||
+ | | **ifldkeyval2** | value | | Valeur du deuxième filtre | | ||
+ | | **ifldkey3** | string | | Nom de la troisième colonne filtre | | ||
+ | | **ifldkeyval3** | value | | Valeur du troisième filtre | | ||
+ | | **ifldkey4** | string | | Nom de la quatrième colonne filtre | | ||
+ | | **ifldkeyval4** | value | | Valeur du quatrième filtre | | ||
+ | |||
+ | |||
+ | ==== Retour ==== | ||
+ | |||
+ | ^ Type de retour ^ Valeur de retour ^ | ||
+ | | | La valeur trouvée ou None | | ||
+ | |||
+ | ==== Exemples ==== | ||
+ | |||
+ | Par exemple si l'on veut obtenir le nom du client dont le numéro est 1005: | ||
+ | <code python> | ||
+ | nomclient = db_common.dbgenericgetvalue( | ||
+ | usession = gses, | ||
+ | itbl = "facture", | ||
+ | ifldkey = "CLIENT_NUM", | ||
+ | ifldkeyval = 1005, | ||
+ | ifldkey2 = "CLIENT_SOCIETE", | ||
+ | ifldkeyval2 = "MASOCIETE", | ||
+ | ifldtoreturn = "CLIENT_NOM" | ||
+ | ) | ||
+ | </code> | ||