Bonjour,

je souhaite développer une BDD avec gadfly. j'ai donc écrit le code suivant (en m'inspirant largement du tutoriel trouvé sur ce site)

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
    def __init__(self, dbName=Glob.dataBaseName, struct=Glob.profilDbStruct):
 
 
        self.name=dbName
        self.struct=struct
        self.entry=self.struct.keys()
        self.data=gadfly.gadfly
        self.data.startup(self.name,'C:\Users\ggmy\Documents')
        self.cursor=self.data.cursor()
 
    def createDb(self):
        for table in self.entry:
            request="create table %s (" %table
            for descriptList in self.struct[table]:
                nameVar = descriptList[0]
                typeVar = descriptList[1]
                request = request+"%s %s, " %(nameVar,typeVar)
            request = request[:-2]+')'
            self.executeReq(request)
 
    def executeReq(self,req):
        try:
            self.cursor.execute(req)
        except Exception, err:
            # afficher la requête et le message d'erreur système :
            print "Requete SQL incorrecte :\n%s\nErreur detectee :\n%s" % (req, err)
            return 0
        else:
            return 1
ce qui me permet de construire les deux requêtes suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
create table patientProfil (subjectNum integer, group varchar, subjectCode varchar, genre varchar, age varchar, main varchar)
create table parameterTests (date varchar, sessionNum varchar, placeTest varchar, examinator varchar)
Lorsque que j’exécute les requêtes, j'obtient alors une erreur ...

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
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    p.createDb()
  File "C:\Users\ggmy\Documents\master EEA UM2\Projet M2\basededonnees\managementDb.py", line 29, in createDb
    self.cursor.execute(request)
  File "C:\Python27\lib\site-packages\gadfly\database.py", line 339, in execute
    cs = self.commands = self.connection.sql.DoParse1(statement, context)
  File "C:\Python27\lib\site-packages\gadfly\kjParser.py", line 1161, in DoParse1
    return self.DoParse(String, Context, DoReductions)[0]
  File "C:\Python27\lib\site-packages\gadfly\kjParser.py", line 1153, in DoParse
    ParseResult = ParseOb.GO()
  File "C:\Python27\lib\site-packages\gadfly\kjParser.py", line 827, in GO
    self.DoOneReduction()
  File "C:\Python27\lib\site-packages\gadfly\kjParser.py", line 760, in DoOneReduction
    self.ParseError(current,tokenVal, "nomatch1")
  File "C:\Python27\lib\site-packages\gadfly\kjParser.py", line 811, in ParseError
    raise SyntaxError, 'unexpected token sequence.' + data
SyntaxError: unexpected token sequence.near ::
'ectNum integer,'*' group varchar,'
j'ai cherché tout le week-end comment faire pour que cela fonctionne mais rien de concluant.
J'espère avoir plus de chance sur ce forum !

Merci par avance pour vos réponses