bonjour

j'ai un projet dans le répertoire
\Application
avec les bases de données sqllite la base ms-access.
J'ai une application qui transfert les données de la base ms-access vers 2 base sqllite avec une modification des données une reconstruction de la base.

Le source baseTotal.py contient les acces au base et le procress de migration ; il est a la racine du répertoire .\Application\baseTotal.py
J'ai un descriptif des tables sqllite dans un source .\Application\Liste_des_Tables.py


Voici le debut du code source baseTotal.py

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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 sqlalchemy import MetaData
 
import pyodbc
 
from dataclasses import dataclass 
 
from  Liste_des_Tables import Base , Session_rcg_fr, Session_rcg_gb
from  Liste_des_Tables import T_GroupeREF , T_CC_Abilities ,T_CCR_Bonuses ,T_Category ,T_Bionic_Weapon, T_Animal 
from  Liste_des_Tables import T_Attaque_Animal, T_Armes ,T_Bionics ,T_CC ,T_CCR_Progression  ,T_CC_Knowledge
Je suis perplexe car eclipse me dit unresolve import sur toutes les lignes d'importation de Liste_des_Tables.py.

Quand au programme ( baseTotal.py) fonctionne et réalise correctement ce que je souhaite.



j'ai ajouter 2 nouvelles table a Liste_des_Tables.py

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
28
29
30
 
# coding: utf-8   
 
from sqlalchemy import MetaData, Table ,create_engine 
from sqlalchemy.orm import scoped_session, sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
 
from sqlalchemy import delete, insert , update ,  func ,select
from sqlalchemy import Column, Integer, Text ,  String,  ForeignKey , BLOB , Float ,   BigInteger , Boolean, null
 
 
from dataclasses import dataclass 
 
#--------------------------Declaration des sessions et acces aux bases
Base = declarative_base()    # prérequis 
 
class T_aleatoire( Base ):
    __tablename__ = 'Aleatoire'
    Id =  Column(Integer, primary_key=True,  autoincrement=True) 
    Nom_table_alatoitre = Column(String(255) , unique =True ,index =True )
    Description =  Column(Text)
 
 
class T_aleatoire_valeur( Base ):
    __tablename__ = 'Aleatoire_valeur'
    Id =  Column(Integer, primary_key=True,  autoincrement=True) 
    Id_T_aleatoitre  = Column(Integer ,  ForeignKey(T_aleatoire.Id))
    valeur_min = Column(Integer)
    valeur_max = Column(Integer)
    note =  Column(Text)
et j'ai creer toujours dans le même répertoire .\Application\Table_pourcentage.py


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
# 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 sqlalchemy import MetaData
 
 
from dataclasses import dataclass 
 
from Liste_des_Tables import Base , Session_rcg_fr, Session_rcg_gb
from Liste_des_Tables import T_aleatoire ,  T_aleatoire_valeur 
 
 
DBSession_rcg_fr = Session_rcg_fr()
DBSession_rcg_gb = Session_rcg_gb()
 
def init_Type_of_Environment_fr():
 
    Type_of_Environment = [(1,20 ,"Petite communaut� agricole."),
    (21,40 ,"Petite ville sauvage."),
    (41,60,"Petite � moyenne ville"),
    (61,80 ,"Ville sauvage avec magie et/ou Spy"),
    (81,100 ,"Coalition City ou Burbs")]
 
    # creer la table
    sql = insert(T_aleatoire).values(T_aleatoire.Nom_table_alatoitre ='Type_of_Environment' , T_aleatoire.Description ='Type of Environment'  )
 
 
 
 
        try:
            DBSession_rcg_gb.execute(stmt)
        except  Exception as erreur:
            print("Erreur:" , erreur)
            DBSession_rcg_gb.rollback()
        else:
            DBSession_rcg_gb.commit() 
 
 
    # insertion des donne en table insert 
 
 
def init_Type_of_Environment_gb():
    Type_of_Environment = [(1,20 ,"Little farm community."),
    (21,40 ,"Small wilderness town"),
    (41,60,"Small to medium city"),
    (61,80 ,"Wilderness town or city with magic and/or psychics"),
    (81,100 ,"Coalition City or Burbs")]
 
 
def init_sqlalchemy_rcg_fr():  # Base sqllite-fr
    DBSession_rcg_fr = scoped_session(sessionmaker())
    dbname = 'sqlite:///baseGenFRS.db'
    engine_rcg_fr = create_engine(dbname, echo=False)
    Base.metadata.create_all(engine_rcg_fr)      # uniquement  la creation installe les tables
    DBSession_rcg_fr.configure(bind=engine_rcg_fr, autoflush=False, expire_on_commit=False)
 
 
def init_sqlalchemy_rcg_gb():  # Base sqllite-fr
    DBSession_rcg_gb = scoped_session(sessionmaker())
    dbname = 'sqlite:///baseGengb.db'
    engine_rcg_gb = create_engine(dbname, echo=False)
    Base.metadata.create_all(engine_rcg_gb)      # uniquement � la creation installe les tables
    DBSession_rcg_gb.configure(bind=engine_rcg_gb, autoflush=False, expire_on_commit=False)
 
 
 
if __name__ == '__main__':
 
    # initialisation Base Fran�ais
 
 
    init_sqlalchemy_rcg_fr()
    init_sqlalchemy_rcg_gb()
La encore l'import de Liste_des_Tables notifie un rejet.

qu'en a la ligne d'inertion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    # creer la table
    sql = insert(T_aleatoire).values(T_aleatoire.Nom_table_alatoitre ='Type_of_Environment' , T_aleatoire.Description ='Type of Environment'  )
j'ai une notification d'erreur de syntaxe et impossible d’utiliser les automatises pour les information liée aux tables importée T_aleatoire.Nom_t...

par contre les tables sont présente dans les base sqlite...