bonjour
voici un code qui me pose probl�me

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def table_Category(sql_requete):
        print("Creer et Charger Table Category")
        cur_BaseOrigine.execute(sql_requete )
        result = cur_BaseOrigine.fetchall()  # fetchall() : r�cup�re toutes les lignes qui correspondent aux param�tres d�finis.
        for Category , in result:
            stmt = insert(T_Category).values(Nom_Category = Category , Type_Category='bionic')
 
            try:
                DBSession_rcg_fr.execute(stmt)
            except  Exception as erreur:
                print("Erreur:" , erreur)
                DBSession_rcg_fr.rollback()
            else:
                DBSession_rcg_fr.commit()
 
            try:
                DBSession_rcg_gb.execute(stmt)
            except  Exception as erreur:
                print("Erreur:" , erreur)
                DBSession_rcg_gb.rollback()
            else:
                DBSession_rcg_gb.commit()

Solution N1

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# coding: utf-8   
from sqlalchemy import delete, insert , update ,  func ,select
from sqlalchemy import Column, Integer, Text ,  String,  create_engine ,ForeignKey , BLOB , Float ,   BigInteger , Boolean, null
from sqlalchemy.orm import scoped_session, sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
 
from dataclasses import dataclass 
 
Base = declarative_base()    # prérequis 
def init_sqlalchemy_rcg_fr():  # Base sqllite-fr
    global DBSession_rcg_fr
    Base_rcg_fr = declarative_base()
    DBSession_rcg_fr = scoped_session(sessionmaker())
    BaseSqllite_fr = 'baseGenFRS.db'
    dbname = 'sqlite:///' + BaseSqllite_fr
    engine_rcg_fr = create_engine(dbname, echo=False)
 
    Base.metadata.drop_all(engine_rcg_fr)       # drop des tables
    Base.metadata.create_all(engine_rcg_fr)      # uniquement � la creation installe les tables
    DBSession_rcg_fr.remove()
    DBSession_rcg_fr.configure(bind=engine_rcg_fr, autoflush=False, expire_on_commit=False)
 
 
if __name__ == '__main__':
        sql_Bionics_Base_Access = """SELECT `Category`, `ItemName`, `Cost`, `Cat`, `Location`, `Description` FROM `Bionics`; """
        table_Category(sql_Bionics_Category_Base_Access)

Solution N2
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# coding: utf-8   
from sqlalchemy import delete, insert , update ,  func ,select
from sqlalchemy import Column, Integer, Text ,  String,  create_engine ,ForeignKey , BLOB , Float ,   BigInteger , Boolean, null
from sqlalchemy.orm import scoped_session, sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
 
from dataclasses import dataclass 
 
Base = declarative_base()    # prérequis 
def init_sqlalchemy_rcg_fr():  # Base sqllite-fr
    Base_rcg_fr = declarative_base()
    DBSession_rcg_fr = scoped_session(sessionmaker())
    BaseSqllite_fr = 'baseGenFRS.db'
    dbname = 'sqlite:///' + BaseSqllite_fr
    engine_rcg_fr = create_engine(dbname, echo=False)
 
    Base.metadata.drop_all(engine_rcg_fr)       # drop des tables
    Base.metadata.create_all(engine_rcg_fr)      # uniquement � la creation installe les tables
    DBSession_rcg_fr.remove()
    DBSession_rcg_fr.configure(bind=engine_rcg_fr, autoflush=False, expire_on_commit=False)
    return DBSession_rcg_fr
 
 
if __name__ == '__main__':
        sql_Bionics_Base_Access = """SELECT `Category`, `ItemName`, `Cost`, `Cat`, `Location`, `Description` FROM `Bionics`; """
        DBSession_rcg_fr = init_sqlalchemy_rcg_fr()
        table_Category(sql_Bionics_Category_Base_Access)
Voici 2 codifications et utilisation de la fonction init_sqlalchemy_rcg_fr().

L'un d�fini l'objet DBSession_rcg_fr en Global dans la fonction et l'autre retourne l'objet par la fonction

Mon probl�me est que seule la solution N1 de la variable globale semble fonctionner avec la cr�ation de l'objet.
avec la solution N� 2 j'obtiens cette erreur pour l�ex�cution de la fonction table_Category(sql_requete)....

l'objet pose probl�me

Erreur: 'NoneType' object has no attribute 'execute'
Erreur: 'NoneType' object has no attribute 'rollback'