Forum Programmation.python pymssql / j'ai l'impression que ...

Posté par . Licence CC By‐SA.
Étiquettes : aucune
1
26
oct.
2016

Bonjour tout le monde,
J'ai un code ci-après, qui réalise la tâche compliqué de faire un TRUNCATE d'une table, en utilisant la bibliothèque pymssql
Ce code sort sans erreur, mais la table n'est pas vidée.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, csv, pymssql
class MsSql:
 ''' Paramètres MsSql '''
 server = '10.0.3.35'
 user = 'sa'
 password = '713tbq42'
def requete():
 cnx = pymssql.connect(MsSql().server, MsSql().user, MsSql().password, 
as_dict=True)
 cur = cnx.cursor()
 cnx.commit()
 sqlrequest = ("TRUNCATE TABLE [MicheOD].[dbo].[MAPurgeD]")
 cur.execute(sqlrequest)
 cnx.close()
requete()

Qu'en pensez-vous?

  • # oups le commit

    Posté par . Évalué à 6.

    un commit AVANT d’exécuter la requête?
    ca serait pas mieux de le placer après le cur.execute() ???

  • # Pour élargir le sujet

    Posté par . Évalué à 1.

    Ton utilisation de la calsse me parait étrange à deux points de vue

    1. Ta classe ne sert qu'à stocker une information figée et n'en fait rien de plus. A moins qu'elle ne soit amenée à évoluer je pense qu'il serait plus naturel d'utiliser un dict
     sql_parms = {
     'server' : '10.0.3.35',
     'user' : 'sa',
     'password' : '713tbq42',
     }

    Pour ensuite l'utiliser ainsi

     cnx = pymssql.connect(sql_parms['server']...

    sachant que as_dict = True laisse imaginer qu'un dictionnaire pourrait immédiatement être utilisé, mais j en'ai pas regardé la doc

    1. Tu utilises la Classe en refabriquant un objet neuf à chaque fois que tu as besoin d'un paramètre, donc si ta classe devait évoluer (pour intégrer des méthodes par exemple), ou simplement pour être plus efficace en ressources/mémoire, ton programme devrait utiliser une instance de classe
     class MsSql:
     ''' Paramètres MsSql '''
     server = '10.0.3.35'
     user = 'sa'
     password = '713tbq42'
     def requete():
     mon_instance = MsSql()
     cnx = pymssql.connect(mon_instance.server, mon_instance.user, mon_instance.password, 
     as_dict=True)
     cur = cn...

    voila pour mes deux cts

    A +

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.