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
Voici 2 codifications et utilisation de la fonction init_sqlalchemy_rcg_fr().
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)
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'
Partager